• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Alle verschiedenen Möglichkeiten

Status
Für weitere Antworten geschlossen.

Giro

Neues Mitglied
Wie kann man alle verschiedene Strings aus
-> "6 * W"
->"4 * F"
erstellen?

Also z.B:

WWWWWWFFFF
WWFFWWFWFW
FFWWWWWWFF
....
...
..

Hoffe das ist verständlich ô_O
 
Werbung:
Werbung:
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."<br>");
}

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
 
Zuletzt bearbeitet:
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."<br>");
}

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]." <br />\n";
}
}
}
}
}
}
}
}
}
}
echo ("Es gibt ".$ergebnis." Möglichkeiten:");
echo($text);
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 :-/
 
Werbung:
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]." <br />\n";
}
}
}
}
}
}
}
}
}
}
echo ("Es gibt ".$ergebnis." Möglichkeiten:");
echo($text);
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 4*F und 6*W geben darf.
Bei dem Script wird aber auch z.B "FFFFFFFFFF" ausgegeben.
 
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...
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...
 
Zuletzt bearbeitet von einem Moderator:
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
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben