ActionScripter
Scripter auf Abruf
- 17 Oktober 2006
- 484
- 39
hallo zusammen,
ich hänge grad irgendwie an einem reichlich kleinlichen problem fest. ich möchte ein array von 8 zahlen so durcheinanderwürfeln, dass eine fest definierte anzahl von zahlen an der richtigen stellen bleibt. klingt vielleicht etwas komisch, daher erstmal ein bisschen code. mein lösungsansatz ist folgendes:
es soll also solange geschuffled werden, bis für eine feste anzahl von stellen gilt: key=value. ich möchte exakt die anzahl haben, also nicht mehr oder weniger stellen. nun macht der code da eigentlich nicht viel sinn. solange die anzahl klein bleibt (1-3 od. 4) funktioniert das noch. wenn aber 5,6,7 oder gar 8 zahlen richtig bleiben sollen, dann läuft das ganze häufig in den timeout hinein.
nun ist das ganze schon so ein paar jährchen her, dass ich mich mit zufall und wahrscheinlichkeiten und verteilung beschäftigt habe. kann mir jemand kurz auf die sprünge helfen, welchen weg man benutzt, ohne dass daraus 200 zeilen code werden.
wäre super, danke.
ich hänge grad irgendwie an einem reichlich kleinlichen problem fest. ich möchte ein array von 8 zahlen so durcheinanderwürfeln, dass eine fest definierte anzahl von zahlen an der richtigen stellen bleibt. klingt vielleicht etwas komisch, daher erstmal ein bisschen code. mein lösungsansatz ist folgendes:
PHP:
$anzahl = 4; // variable anzahl von richtigen
$result = array( 0, 1, 2, 3, 4, 5, 6, 7 );
do {
$i=0; shuffle( $result );
foreach( $result as $k=>$v ) if( $k==$v ) $i++; // übereinstimmung zählen
} while( $i!=$anzahl ); // array solange würfeln, bis anzahl stimmt
es soll also solange geschuffled werden, bis für eine feste anzahl von stellen gilt: key=value. ich möchte exakt die anzahl haben, also nicht mehr oder weniger stellen. nun macht der code da eigentlich nicht viel sinn. solange die anzahl klein bleibt (1-3 od. 4) funktioniert das noch. wenn aber 5,6,7 oder gar 8 zahlen richtig bleiben sollen, dann läuft das ganze häufig in den timeout hinein.
nun ist das ganze schon so ein paar jährchen her, dass ich mich mit zufall und wahrscheinlichkeiten und verteilung beschäftigt habe. kann mir jemand kurz auf die sprünge helfen, welchen weg man benutzt, ohne dass daraus 200 zeilen code werden.
wäre super, danke.