Thema: Zufalls-Algorythmus
In JS kann amn nur Zufallszahlen zwischen 0 und 1 erzeugen. Kennt einer eine Methode, Zufallszahlen von 1-10 oder 1-100 oder 10-100 usw. zu erzeugen?<p>[ 22.05.2001: Beitrag editiert von: v.Köpenick ]
Sie sind nicht angemeldet. Bitte melden Sie sich an oder registrieren Sie sich.
Seiten 1
Sie anmelden oder registrieren um eine Antwort zu verfassen
In JS kann amn nur Zufallszahlen zwischen 0 und 1 erzeugen. Kennt einer eine Methode, Zufallszahlen von 1-10 oder 1-100 oder 10-100 usw. zu erzeugen?<p>[ 22.05.2001: Beitrag editiert von: v.Köpenick ]
Hallo,<P>na ja, eigentlich ist das kein richtiger Algorithmus<P>var zahl;<BR>zahl = Math.random()*(100-1)+1;<BR>zahl = Math.round(zahl);<BR>alert(zahl);<P>dieser Code gibt eine Zufallszahl von 1 bis 100 zurück.<P>Erklärung: <BR>1) Math.random()*(x-y)+y;<BR>hier gibs du die untere Grenze y, und die obere x an, wenn die Zahl also zwischen 50 und 1000 liegen soll heißt es<BR> Math.random()*(1000-50)+50;<P>2) Math.round(zahl);<BR>es wird gerundet da diese Zahl ein float-Wert ist<P>Viel Erfolg!<BR>Bis dänn, odoggy
Danke,<BR>ich hab n JS-Lehrbuch, da steht drin das man nur Zahlen zwischen 0 und 1 erzeugen kann, und das hatte ich dem Kerl auch geglaubt. Was der sich dabei gedacht hat...
Ja, also ganz unrecht hat er ja nicht,<BR>mit Math.random() kann man auch nur Zahlen<BR>zwischen 0 und 1 erzeugen.<P>Aber normalerweise sollte auch in jedem zweitklassigen Buch obiger Lösungsansatz stehen, scheinst wohl nicht so'n tolles buch zu haben.<P>P.S. Hmmm, da stellst sich mir grade die Frage ob es eigentlich in dem Buch von J|G steht, hehe
Mal allgemein: Wie wärs mit der Methode der linearen Kongruenz? Die könnte nämlich direkt ganzzahlige Resultate liefern. Muss sie mir allerdings noch genauer ansehen. (Mein Buch: Algorithmen in C (R. Sedgewick))
Also (in C):<BR><BLOCKQUOTE><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><HR><pre> <BR>#define m 100000000<BR>#define m1 10000<BR>#define b 31415821<BR>static int a;<P>void seed(int v)<BR>{<BR>a=v;<BR>}<P>int mult(int p, int q) /*multipliziere zwei Zahlen ohne gröbere Details*/<BR>{<BR>int p1,p0,q1,q0;<BR>p1 = p/m1; p0 = p%m1; /*vor und hinter m1*/<BR>q1 = q/m1; q0 = q%m1;<P>return (((p0*q1+p1*q0)%m1)*m1+p0*q0)%m;<BR>}<P>int random(int max) /*zufäll. Zahl bis max-1*/<BR>{<BR>a=(mult(a,b)+1%m);<BR>return ((a/m1)*max)/m1;<BR>} <BR></pre><HR></BLOCKQUOTE>
alles falsch schreiben bitte... nur nicht ALGORITHMUS
Seiten 1
Sie anmelden oder registrieren um eine Antwort zu verfassen
Powered by PunBB, unterstützt von Informer Technologies, Inc.
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.