phpbar.de logo

Mailinglisten-Archive

[php] Alle Reihenfolgen eines Array abbilden

[php] Alle Reihenfolgen eines Array abbilden

Thomas Langfeld opa.thomas at fhtw-berlin.de
Fre Aug 15 15:55:53 CEST 2003


Hi,

> Hallo Liste,
>
> ich möchte gerne aus einem Array, welches beliebig viele Werte haben kann,
> jede mögliche Reihenfolge als String abbilden. Also als Beispiel:
> Ein Array enthält die Werte '1', '2' und 'a', dann möchte ich
> daraus später
> als Endergebnis alle möglichen Kombinationen der Werte als String haben:
> 1. String: 1 2 a
> 2. String: 1 a 2
> 3. String: 2 1 a
> 4. String: 2 a 1
> usw...

Wenn mich mein mathematisches Gedächtnis nicht täuscht, ist das eine
"ungeordnete Stichprobe ohne Zurücklegen",
wobei n=k (n = Anzahl Werte, k = Anzahl Ziehungen).

Die Anzahl der Möglichen Kombinationen ergibt sich aus "n über k" (n! /
(n-k)!) ist wegen n=k demnach n! , also ziemlich groß.

Die Lösung hat eigentlich nichts mit PHP zu tun, sondern erfordert einen
bestimmten Algorithmus.

Je nachdem, wie groß dein Array ist, wirst du m.E. mit PHP aber auf
Speicher-/Laufzeit-Probleme stossen.

Bei einem Array mit 15 Einträgen gibt es schon 1.307.674.368.000
verschiedene Lösungen, die ja irgendwo im Speicher gehalten werden müssen,
ganz zu schweigen von der Zeit, die es braucht, sie alle zu ermitteln.


Gruß
Thomas



php::bar PHP Wiki   -   Listenarchive