Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 27-09-2006, 00:23
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard langeweile - zufallszahlen-contest

ja, könnte auch ins ot rein - hier ist ja nichts los

habe mal ein altes script von mir rausgekramt.

gesucht: 5 eindeutige zufallszahlen zwischen 1 und 15
bedingung: maximale performance bei z.b. 10.000 schleifendurchläufen


wer hat ein schnelleres script?
PHP-Code:
function getmicrotime(){
    list(
$usec$sec) = explode(" ",microtime());
    return ((float)
$usec + (float)$sec);
    }

// Stoppuhr anschmeißen
$time1=getmicrotime();

// CODE ========================================================================
$i=0;
while(
$i<10)
 {
  
$i++;
  
$k=0;
  while(
$k<10000)
   {
       
$k++;
       
// Zufallszahlen-Generator initialisieren
       
srand((double)microtime()*1000000);

       
// Auf gut Glück fünf Zufallszahlen generieren
    
$r0=rand(1,15);
    
$r1=rand(1,15);
    
$r2=rand(1,15);
    
$r3=rand(1,15);
    
$r4=rand(1,15);
    
    
// Nach dieser While-Schleife sind die ersten drei Zufallszahlen eindeutig
    
while($r0==$r1||$r1==$r2||$r0==$r2)
     {
      
$r0=rand(1,15);
      
$r1=rand(1,15);
      
$r2=rand(1,15);
     }
     
    
// Nach dieser While-Schleife sind die ersten vier Zufallszahlen eindeutig
    
while($r0==$r3||$r1==$r3||$r2==$r3)
     {
      
$r3=rand(1,15);
     }

    
// Nach dieser While-Schleife sind alle Zufallszahlen eindeutig
    
while($r0==$r4||$r1==$r4||$r2==$r4||$r3==$r4)
     {
      
$r4=rand(1,15);
     }
   }
  
// Mal testweise den ganzen Müll ausgeben (10.000 Durchläufe)
  
echo "$r0, $r1, $r2, $r3, $r4 <br>";
 }
// =============================================================================

// Stoppuhr stoppen (wie schon der Name sagt) 
$time2=getmicrotime();

// Die fantastische Laufzeit des genialen Algorithmus ausgeben
echo "<br>RUNTIME: ";
echo 
$time2-$time1
Mit Zitat antworten