phpbar.de logo

Mailinglisten-Archive

AW: [php] Verbesserung eines Zufallsgenerators

AW: [php] Verbesserung eines Zufallsgenerators

Jochen Metzger php_(at)_phpcenter.de
Fri, 23 Mar 2001 12:07:57 +0100


Maltid,
> Moin,
>
> ich habe ein kleines Problem. Folgender "Zufallsgenerator"
> soll einfach diverse Dateien includen. Tut er auch aber:
> Es kommt immer wieder zu Doppelincludes, weil er eben ab
> und an die gleiche Zahl hintereinander generiert.
>
> Bei einer Zahlenbasis von 50 ist das zwar moeglich aber
> geht es nicht auch anders ?
>
> <?php
> // Zufallsinclude von Schlagzeilen
> // $headlines beziffert Zahl der Textfiles
> // $headlinepfad beschreibt Pfad zu den Textfiles
> // $headlinemax beziffert Menge der Headlines
>
> $headlines="10" ;
> $headlinepfad="./" ;
> $headlinemax="2" ;
>
> echo "<center>" ;
> for ($i=1; $i <= $headlinemax; $i++)
> {
>   echo "<b><font size=\"2\">" ;
>    echo "+++ " ;
>    $zahl="" ;
>    mt_srand ((double) microtime() * 1000000);

     Evtl könntest du es lösen, in dem Du die Zahl zu initieren von Rand
selber per Zufall auswählst und dabei eine größere Zahlenbasis nimmst,
dann ist die wahrscheinlichkeit daß die gleiche Zahl zweimal vorkommt
nicht so groß.

	Könnte funktionieren - untested...Einschub:

     $doubletrouble=mt_rand(1,1000000);
     mt_srand ($doubletrouble);

>    $zahl = mt_rand(1,$headlines);
>    $zahl .=".txt" ;
>    include ($headlinepfad.$zahl) ;
>    echo " +++" ;
>    echo "</font></b><br>" ;
> };
> ?>
>
> Erschien mir ganz logisch. $zahl wird immer wieder leer-
> gemacht und via mt_rand eine neue Zahlenfolge generiert.
>
> any hints ?

Das Problem ist, daß du im Beispiel eine rechte kleine Zahlenbasis
verwendest, so daß die Wahrscheinlichkeit, daß bei 10 Schlagzeilen
zweimal die gleiche kommt sehr groß ist.

Das verringert sich mit der Anzahl der Schlagzeilen.

Hoffe es konnte weiterhelfen.

Wenn es tatsächlich nur zehn Schlagzeilen sind, macht es wahrscheinlich
mehr Sinn eine Schleife zu verwenden.

Gruß

Jochen


>
> tia, Michael
> --
>             --- coming soon : project blindflug ---
>     [name:] Michael Weber [home:] closed until further notice
>         [phone:]0171-2120254  mailto:michael_(at)_michaelw.org
> --
> ** http://www.php-center.de **
> Die PHP-Liste: mailto: php_(at)_phpcenter.de
> http://lists.phpcenter.de/mailman/listinfo/php
>




php::bar PHP Wiki   -   Listenarchive