Wie kann man alle verschiedene Strings aus
→ „6 * W“
->„4 * F“
erstellen?
Also z.B:
WWWWWWFFFF
WWFFWWFWFW
FFWWWWWWFF
…
…
…
Hoffe das ist verständlich ô_O
Wie kann man alle verschiedene Strings aus
→ „6 * W“
->„4 * F“
erstellen?
Also z.B:
WWWWWWFFFF
WWFFWWFWFW
FFWWWWWWFF
…
…
…
Hoffe das ist verständlich ô_O
Wenn ich das richtig verstanden habe, willst du quasi aus einem eingegebenen String mehrere Zufallsstrings bauen.
Dann wird die diese Funktion weiter helfen
→ http://de3.php.net/manual/de/function.str-shuffle.php
gruss Sven
Ja, im Prinzip meine ich das. Ich will aber ALLE möglichen „Zufallsstrings“ haben, die man aus dem „Ausgangsstring“ bauen kann.
[PHP]
$string=„WWWWWWFFFF“;
$ausgabe = Array();
$found = 0;
while($found < 200)
{
$stringshuffle = str_shuffle($string);
if(!in_array($stringshuffle, $ausgabe))
{
$ausgabe = $stringshuffle;
}
else
{
$found++;
}
}
foreach($ausgabe as $string)
{
echo($string.„
“);
}
[/PHP]
Dieses Script sucht so lange mögliche Varianten, bis 200 mal keine weitere gefunden wurde
Ich gehe mal davon aus, dass wenn 200 mal keine weitere Variante gefunden wird, es auch keine weiter gibt
Leider doch! Lass das Script mal mehrmals laufen und lass dir immer sizeof($ausgabe) ausgeben, dann siehst du, dass es immer unterschiedliche viele Lösungen findet.
Ich brauche eher einen Algorithmus der alle Lösungen systematisch erstellt…
Ist zwar ziemlich umständlich, und man muss für jede Kombination ein neues Script machen, aber es gibt wirklich alle Lösungen zurück:
[php]$ergebnis = 0;
$test = „“;
$erlaubt = Array(„w“,„a“,);
$lang = count($erlaubt);
for(a = 0 ; a < $lang ; a++){
for(b = 0 ; b < $lang ; b++){
for(c = 0 ; c < $lang ; c++){
for(d = 0 ; d < $lang ; d++){
for(e = 0 ; e < $lang ; e++){
for(f = 0 ; f < $lang ; f++){
for(g = 0 ; g < $lang ; g++){
for(h = 0 ; h < $lang ; h++){
for(i = 0 ; i < $lang ; i++){
for(j = 0 ; j < $lang ; j++){
$ergebnis++;
$text+=$erlaubt[$a].$erlaubt[$b].$erlaubt[$c].$erlaubt[$d].$erlaubt[$e].$erlaubt[$f].$erlaubt[$g].$erlaubt[$h].$erlaubt[$i].$erlaubt[$j]."
\n";
}
}
}
}
}
}
}
}
}
}
echo („Es gibt „.$ergebnis.“ Möglichkeiten:“);
echo($text);[/php]Nur das dumme ist: das geht nur, wenn es insgesamt 10 Buchstaben sein sollen, sonst gibt es andere Werte aus
Wenn es nur um das ausrechnen von allen möglichen Werten geht, dann muss man ja nur (anzahl an elementen) ^ (länge des etxtes) rechnen, aber du willst ja alle Ergebnisse :-/
Funktioniert leider auch nicht, da es nur 4F und 6W geben darf.
Bei dem Script wird aber auch z.B „FFFFFFFFFF“ ausgegeben.
Dann änder die while schleife dementsprechend, dass es öfters probiert wird(
ich habs mit 20000 probiert, und es klappt… bekomme immer 210 raus)
MFG
Alti
EDIT:
Der nachteil ist, das die seite so länger zum Laden braucht…
Also ist diese Lösung auch nicht so genial…
naja dann schein ich ja euch mit meinem script etwas weitergeholfen zu haben,
ps: habs auch mal mit 2 000 000 probiert, solange das auf dem localhost läuft sieht man da keinen untersched zwischen 200 und 2 000 000