Domanda

Devo stampare i numeri 1-100 in ordine casuale. la dichiarazione stampata dovrebbe essere:

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

qual è il codice più breve per farlo?

È stato utile?

Soluzione

Il modo più semplice è usare shuffle con un array contenente i 100 numeri

per es.

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

Vedi anche la funzione range

Modifica

Ho pensato di aggiungere un po 'a ciò che fa shuffle. Anche se php.net non lo dice esplicitamente, è probabilmente basato sulla versione moderna del Fisher -Yates Shuffle algoritmo . Per una dimostrazione video di come funziona, vedi http://www.youtube.com/watch? v = Ckh2DJrP7F4 . Guarda anche questa eccellente flash dimostrazione

L'algoritmo shuffle funziona essenzialmente in questo modo:

  1. Per un determinato set di elementi da A1 a AN e n = N;
  2. Seleziona casualmente un elemento Ak tra A1 e An inclusivo
  3. Scambia Ak e An
  4. Imposta n = n - 1
  5. Ripeti dal passaggio 2

Spero che sia d'aiuto.

Altri suggerimenti

Vedi l'esempio di shuffle () :

$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top