Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Inny

Liczba kombinacji

Inny

  • Zamknięty Temat jest zamknięty
25 odpowiedzi w tym temacie

#1 Neazo

    Banned

  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:340
  • GG:
  • Imię:Przemek
  • Lokalizacja:Rzgów
Offline

Napisano 16.10.2011 15:33

11.10.2011
Chciałbym się dowiedzieć, ile jest możliwych kombinacji cyfr 1,1,1,0,2,0,1,1. Jak to w najprostszy sposób zrobić, bądź jeżeli ktoś może proszę o podanie wyniku :)
Prefix nie wiem jaki dać ...

@Edit:

Oraz ile jest kombinacji liczb 11,10,20,11 ...

Użytkownik Neazo edytował ten post 16.10.2011 15:34


#2 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 16.10.2011 15:34

chodzi
Ci o to ile jest liczb takich jak

11111020
11211100

itp ?
  • +
  • -
  • 0

#3 Neazo

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:340
  • GG:
  • Imię:Przemek
  • Lokalizacja:Rzgów
Offline

Napisano 16.10.2011 15:46

Tak :)

#4 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 16.10.2011 16:06

aha

ciężko tu dać jakikolwiek algorytm bo liczby się powtarzają.. zaraz może coś wymyśle ;)

czysta kombinatoryka

0, 1, 2,
10, 11, 12, 20, 21,
100, 101, 110, 111, 112, 120, 121, 200, 201, 210, 211


Najgorsze, że na to nie ma wzoru... :/

Użytkownik Nakupenda. edytował ten post 16.10.2011 15:57

  • +
  • -
  • 0

#5 Neazo

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:340
  • GG:
  • Imię:Przemek
  • Lokalizacja:Rzgów
Offline

Napisano 16.10.2011 16:08

Czyli jest 211 kombinacji??

#6 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 16.10.2011 16:18

nie, wymieniłem tylko kombinacje dla 1,2 i 3 cyfr

jeszcze 4,5,6,7 i 8..
  • +
  • -
  • 0

#7 Neazo

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:340
  • GG:
  • Imię:Przemek
  • Lokalizacja:Rzgów
Offline

Napisano 16.10.2011 17:19

Umie ktoś to zrobić w miarę sprawnie?? Potrzebne jest mi to na dziś wieczór :/

Kombinacja tych liczb, ale to co powstanie ma mieć 8 liczb też

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.10.2011 18:06

Nie umiem podać wzoru, ale wygenerowałem wszystkie opcje :)

http://r3x.ajtweb.pl.../permutacje.php
  • +
  • -
  • 1

#9 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 16.10.2011 18:13

Rex, myk w tym ze mogą być tylko 7 cyfrowe, lub tylko 6...

Wszystko wszystko :/
  • +
  • -
  • 0

#10 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.10.2011 18:22

a no tak :D

http://r3x.ajtweb.pl.../permutacje.php
  • +
  • -
  • 1

#11 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 16.10.2011 18:29

r3x, piękna robota ale jeszcze jedna uwaga - liczby nie mogą się zaczynać na "0" poza samym zerem ;)
  • +
  • -
  • 0

#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.10.2011 19:26

Proszę
http://r3x.ajtweb.pl.../permutacje.php
  • +
  • -
  • 2

#13 Neazo

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:340
  • GG:
  • Imię:Przemek
  • Lokalizacja:Rzgów
Offline

Napisano 16.10.2011 19:44

Potrzebuję również czegoś takiego do liczb 20111810;18102011 i 10201118, tylko 6 cyfrowe liczby mają powstać. I w tym ciągu licz powstałym z jednej drugiej i trzeciej liczby jeżeli się da to chciałbym sprawdzić, czy któraś z liczb nakłada się (jest w tym samym miejscu) na te same liczby z dwóch pozostałych ciągów liczb.
Mam nadzieje, że rozumiecie :)
R3X, jak ty to zrobiłeś?? :D

#14 KoZaK_Pl

    Pomocny

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:42
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 16.10.2011 20:22

Algorytm do permutacji jest dość prosty. Napisałem tak na szybko program w c++. Może komuś się przyda.

#include <iostream>
#include <string>
 
using namespace std;
 
void permutacja(string& o, string& p )
{
	if(o.empty())
	{
		cout<<p<<endl;
		return;
	}
 
	for(int i=0;i<o.length();++i)
	{
		string a = o;
		string B = p;
		a.erase(i,1);
 
		B += o.at(i);
 
		permutacja(a,<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' />;
	}
}
 
int main()
{
	string o,p;  
	cin>>o;
 
	permutacja(o,p);
 
	system("pause");
 
	return 0;
}
 

EDITED:

Przy dłuższym wejściu wygląda tak to trochę jak rozkodowywanie hasła przy użyciu Brute Force. ^D^

Użytkownik KoZaK_Pl edytował ten post 16.10.2011 20:22

  • +
  • -
  • 1

#15 Neazo

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:340
  • GG:
  • Imię:Przemek
  • Lokalizacja:Rzgów
Offline

Napisano 16.10.2011 20:44

Czy pomoże ktoś z tym??

Potrzebuję również czegoś takiego do liczb 20111810;18102011 i 10201118, tylko 6 cyfrowe liczby mają powstać. I w tym ciągu licz powstałym z jednej drugiej i trzeciej liczby jeżeli się da to chciałbym sprawdzić, czy któraś z liczb nakłada się (jest w tym samym miejscu) na te same liczby z dwóch pozostałych ciągów liczb.
Mam nadzieje, że rozumiecie :)
R3X, jak ty to zrobiłeś?? :D



#16 KoZaK_Pl

    Pomocny

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:42
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 16.10.2011 21:10

Po prostu zmieniasz sobie mój kod, tak aby wyświetlane były liczby 6-cyfrowe. Do porównania użyjesz funkcji strcmp z biblioteki <string.h>. Więcej o niej masz tutaj - http://www.cplusplus...cstring/strcmp/
  • +
  • -
  • 1

#17 Neazo

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:340
  • GG:
  • Imię:Przemek
  • Lokalizacja:Rzgów
Offline

Napisano 16.10.2011 22:22

Nie znam się na kodowaniu prawie w ogóle. Z C++ nie miałem nigdy do czynienia.
Mógłby ktoś to sprawdzić za mnie?? :)

#18 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.10.2011 22:46

permutacje z liczb (20111810;18102011 i 10201118) to dokładnie ten sam zbiór, bo składają się z tych samych cyfr

array(2, 0, 1, 1, 1, 0, 1, 8);
http://r3x.ajtweb.pl...permutacje2.php


BTW po co Wam co? czy to tajemnica? :D
  • +
  • -
  • 0

#19 Neazo

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:340
  • GG:
  • Imię:Przemek
  • Lokalizacja:Rzgów
Offline

Napisano 16.10.2011 22:54

Ale jeżeli jest to ten sam zbiór, a zapisany inaczej, czy kolejność permutacji się zmienia?? Jeśli tak to właśnie chciałbym wiedzieć, czy jakaś liczba się pokrywa, i jaka.

A po co to? :D Tata mnie poprosił, żebym mu to sprawdził, tak na prawdę nie wiem o co chodzi, ale nie wypada odmówić :)

#20 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.10.2011 22:59

kolejność permutacji się zmienia, ale jest uzależniona od użytego algorytmy, poza tym te moje listingi są posortowane malejąco, więc kolejność oryginalna jest gubiona i ciągi dla wszystkich tych trzech liczb jest jednakowa

Pytałeś jak to zrobiłem, więc zamieszczam kod permutacji2.php
Algorytm permutacji przepisałem z C++ do PHP ze strony podanej na początku w komentarzu

<?php
//http://burned.pl/cgenerowanie-permutacji-w-porzadku-leksykograficznym

function permutacja(&$data, $n)
{
    if ($n < 2)
	    return;
    $i = $n - 1;
    while (($i > 0) && ($data[$i - 1] >= $data[$i]))
	    $i--;


    if ($i > 0) {
	    $j = $n;
	    while (($j > 0) &&($data[$j - 1] <= $data[$i - 1]))
	    $j--;
    }


    if (($i > 0) && ($j > 0)) {
	    $a = $data[$j-1];
	    $data[$j-1] = $data[$i-1];
	    $data[$i-1] = $a;
    }

    for ($i++, $j = $n; $i < $j; $i++, $j--) {
	    $a = $data[$j-1];
	    $data[$j-1] = $data[$i-1];
	    $data[$i-1] = $a;
    }
}

function silnia($i)
{
    if($i <= 1)
	    return 1;
    return $i*silnia($i-1);
}



$data = array(2,0,1,1, 1, 0, 1,8);
$n = count($data);

$data2 = array();


for($k = 0; $k < $n; $k++)
{
    
    $perm = silnia($n);
    
    for($i=0; $i<$perm; $i++)
    {
        permutacja($data, $n);
        
        $temp = $data;
        for($j=$n-$k; $j < $n; $j++)
            unset($temp[$j]);
            
            
        $text = implode("", $temp);
        
        $text = sprintf("%d", intval($text));


        if(strlen($text) != 6)
            continue;
        
        if(isset($data2[$text]))
        {
            continue;
        }

        $data2[$text] = 1;
    }
}
$data2 = array_keys($data2);
arsort($data2);

echo "<ol>\n";
foreach($data2 as $text)
    echo "\t<li>$text</li>\n";
echo "</ol>";
?>

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: Inny

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych