• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Zeichenfolgen-Generator

timroh

Cripps Pink
Registriert
08.07.09
Beiträge
148
Hallo,
Ich wollte mir mit Php eine Funktion erstellen die alle möglichen Zeichenfolgen ausspuckt die in diesem Fall aus den Zahlen eins bis drei bestehen und 4 Ziffern enthalten. Das ganze soll aber so funktionieren, dass ich die Zahlen auch durch Buchstaben ersetzen kann.
Danke schon im Voraus für eure Antworten
Mit freundlichen Grüssen
Tim

Code:
<?PHP
$zahl1 = array(
			  1,
			  2,
			  3
			  );

$zahl2 = array(
			  1,
			  2,
			  3
			  );

$zahl3 = array(
			  1,
			  2,
			  3
			  );

$zahl4 = array(
			  1,
			  2,
			  3
			  );

//es gibt 81 verschiedene Zahlenfolgen wenn man die Zahlen 1,2 und 3 in verschiedenen folgen aneinander hängt
for($a=0;$a<81;$a++){
[COLOR="red"]WAS MUSS HIER HINEIN?[/COLOR]

}
?>
 
Du kannst ja die Zahlen mit $array[n] abrufen...
Also bei der hintersten Zahl im ersten Element anfangen, hochzählen, wenn du beim letzten bist, im zweiten Array ein Element höher und wieder alle Elemente im Ersten durchgehen usw...
 
Also, ich kann PHP nicht gut genug um das zu lösen, aber so würde ich es in Perl machen. Vielleicht inspiriert dich das ja ausreichend um den Algorithmus in PHP zu übertragen. Hoffe es ist ausreichend kommentiert.
Code:
#!/usr/bin/env perl

use strict;
use warnings;

# zweidimensionaler Array bzw. Array of Arrays fuer den Zeichenvorrat
my @chars = (
    [ 1, 2, 3 ],
    [ 1, 2, 3 ],
    [ 1, 2, 3 ],
    [ 1, 2, 3 ],
);

# und eine Subroutine aufrufen, die diesen Rekursiv abarbeitet.
&recurse( '' );


sub recurse {
    my $string = $_[0]; # bisher erzeugte Zeichenkette speichern

    # Zeichenkette ausgeben wenn keine weiteren Arrays mehr da sind
    if ( @chars == 0 ) {
        print $string . "\n";
        return;
    }

    my $list  = shift @chars; # ersten Array aus zweidimensionalem Array holen

    # durch den geshifteten Array iterieren
    for my $char ( @{$list} ) {
        recurse( $string . $char ); # rekursiven Algorithmus einfuegen :-)
    }

    # Array wieder herstellen
    unshift @chars, $list;
}
 
Also einfach nur in Zufallsgenerator für eine Zahlenkette?
 
Soweit ich den OP verstanden habe, sollen alle möglichen Kombinationen und nicht zufällige Kombinationen ausgegeben werden.

Die Anforderung ist leider nicht sauber definiert, weshalb ich erst mal ein kleines Programm geschrieben habe, um Feedback zu bekommen, ob das so passt oder was anders gewollt ist.
 
ne, es sollen alle Möglichkeiten aufgelistet werden.