Autor Zpráva
pHprulz
Profil *
Dobrý den, prosím, jak lze naprogramovat permutaci ? Potřeboval bych něco na kombinování např. a b c d ... pls poraďte
llook
Profil
No tak můžeš si to třeba dát do pole a pak vytvářet nové pole tak, že vždy náhodně vybereš prvek původního pole a přesuneš ho do nového:
$stary = array('a', 'b', 'c', 'd');

$novy = array();

while (count($stary) > 0) {
$index = rand(0, count($stary) - 1);
$novy[] = $stary[$index];
unset($stary[$index]);
$stary = array_values($stary);
}

echo 'Nová kombinace:<pre>';
var_export($novy);
ah01
Profil
taková fce. v php ale je: http://cz2.php.net/manual/cs/function.shuffle.php
pHprulz
Profil *
ok díky, zkusim
Peca
Profil
pHprulz
lze naprogramovat permutaci ? Potřeboval bych něco na kombinování
Permutace a kombinace jsou ale dvě naprosto odlišné věci. Musíš si rozmyslet, co vlastně chceš :-)
llook, ah01
Ten kód vypíš nanejvýš tak jednu náhodnou premutaci, celkem na nic.

Stačí občas použív vyhledávač. Zas takový problém to není, např. http://usenet.jyxo.cz/cz.comp.lang.php/0209/permutace.html (netestoval jsem, ale vypadá to nadějně).
Ni7R0
Profil
http://cz.php.net/manual/cs/function.str-shuffle.php
Pokud chcete permutaci stringu.
thingwath
Profil
Už jsem to tu psal.

Budeme mít rekurzivní funkci, té budeme předávat mezivýsledek a pole možných prvků. Na počátku jí předáme prázdný mezivýsledek a úplné pole možných prvků.
Pokud bude pole možných prvků nenulové, pro každý prvek z něj opět zavoláme sama sebe s tím, že do každého volání přidáme k mezivýsledku ten jeden prvek a naopak ho vyškrtneme z pole možných prvků.
Až bude pole možných prvků prázdné, vytiskneme mezivýsledek.

Nejsem si samozřejmě zcela jiístý, že je to to co chcete, ale celkem bych si za tím stál :-)
thingwath
Profil
Peca
To mi moje řešení dost připomíná :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0