Frage

Ich brauche zum Ausdrucken von Zahlen 1-100 in einer zufälligen Reihenfolge. die print-Anweisung sollte sein:

echo 'h {' $ num.. '}';

Was ist der kürzeste Code, dies zu tun?

War es hilfreich?

Lösung

Der einfachste Weg ist die Verwendung Shuffle mit einem Array mit die 100 Zahlen

z.

$sequence = range(1, 100);
shuffle($sequence);
foreach ($sequence as $num) {
    echo 'h{'.$num.'}';
}

Siehe auch die reiche Funktion

Bearbeiten

Ich dachte, ich könnte ein wenig auf hinzufügen, was Shuffle tut. Obwohl php.net ausdrücklich sagen, nicht so ist, wird es auf die moderne Version des Fisher -Yates Shuffle-Algorithmus . Für eine Video-Demonstration, wie es funktioniert, finden Sie unter http://www.youtube.com/watch? v = Ckh2DJrP7F4 . Siehe auch diese ausgezeichneten Flash Demonstration rel="nofollow

Der Shuffle-Algorithmus im Wesentlichen funktioniert wie folgt:

  1. Für einen gegebenen Satz von Elementen A1 bis AN, und n = N;
  2. Randomly wählen Sie ein Element Ak zwischen A1 und integrativ
  3. Swap Ak und An
  4. Set n = n - 1
  5. Wiederholen von Schritt 2

Ich hoffe, das hilft.

Andere Tipps

Siehe das Beispiel für shuffle() :

$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top