Leider erlaubt die Funktion Math.random() in Javascript keine Startwerte. Somit kann man eine einmal erzeugte Zufallszahlenreihe nicht wiederholen oder gar in einer anderen Sprache identisch ermitteln.
Vor geraumer Zeit habe ich daher eine kleine Funktion geschrieben, die Startwerte erlaubt und ganz einfach in andere Sprachen umgesetzt werden kann. Vielleicht kann sie hier jemand gebrauchen.
Anbei die Funktion mit entsprechenden Aufrufen zur Erläuterung.
Vor geraumer Zeit habe ich daher eine kleine Funktion geschrieben, die Startwerte erlaubt und ganz einfach in andere Sprachen umgesetzt werden kann. Vielleicht kann sie hier jemand gebrauchen.
Anbei die Funktion mit entsprechenden Aufrufen zur Erläuterung.
Code:
<script type=text/javascript>
//Javascript kennt keine Zufallszahlen mit einem Startwert.
//Diesen braucht man z.B., wenn man mehrmals die gleichen
//Zufallszahlen erzeugen will.
//Oder man benötigt in verschiedenen Sprachen die gleichen
//Zufallszahlen, z.B. in Javascript und in PHP.
//Für solche Anwendungen habe ich diese kleine Funktion geschrieben.
//Variable definieren
var rand=0;
var min=1;
var max=100;
//Zufallszahl initialisieren und Startwert merken
startwert=random(0);
//Ein Beispiel für den Einsatz
//5 Zufallszahlen erzeugen und im Alert-Fenster ausgeben
alert("5 Zufallszahlen zwischen 1 und 100");
for(i=1;i<=5;i++){
zufallszahl=Math.floor(random()*(max-min))+min;
alert(zufallszahl);
}
//Jetzt die 5 gleichen Zufallszahlen erneut erzeugen (mit dem gemerkten Startwert initialisieren)
random(startwert);
alert("Und jetzt noch ein Mal die 5 gleichen Zufallszahlen zwischen 1 und 100");
for(i=1;i<=5;i++){
zufallszahl=Math.floor(random()*(max-min))+min;
alert(zufallszahl);
}
//Und jetzt 5 neue Zufallszahlen ausgeben (mit 0 initialisieren)
random(0);
alert("Und jetzt 5 neue Zufallszahlen zwischen 1 und 100");
for(i=1;i<=5;i++){
zufallszahl=Math.floor(random()*(max-min))+min;
alert(zufallszahl);
}
//Die eigentliche Funktion
function random(z){
var init_random=0;
if(rand==0||z==0){
init_random=1;
var zeit=new Date();
z=zeit.getMilliseconds();
z=parseFloat("0."+String(z));
}
if(typeof(z)=="undefined")z=rand;
z=z+Math.PI;
z=Math.pow(z,8).toString();
z=parseFloat("0."+z.substr(z.indexOf(".")+1,12));
rand=z;
if(init_random==1)random();
return z;
}
</script>