Die Funktion RND() ist eine sehr wichtige Funktion. Wenn Sie eine zufällige Begrüßung, eine zufällige Aufforderung für ein Datum oder sogar ein Spiel erstellen möchten, sollten Sie diese Funktion verwenden
ASP-Funktion rnd()
Die Funktion rnd() gibt eine Zufallszahl zwischen 0 und 1 zurück.
So verwenden Sie es:
Kopieren Sie den Codecode wie folgt:
Response.write rnd() 'Möglicher Rückgabewert: 0,2357746
Wenn Sie die Funktion rnd() verwenden möchten, um Ganzzahlen innerhalb eines bestimmten Bereichs zurückzugeben, beispielsweise Zahlen größer oder gleich 0 und kleiner oder gleich einer bestimmten Ganzzahlobergrenze, können Sie die folgende Methode verwenden:
Kopieren Sie den Codecode wie folgt:
Response.write int((upperbound+1)*rnd)
Die folgende Anweisung gibt beispielsweise eine Ganzzahl zwischen 0 und 5 (einschließlich) zurück:
Kopieren Sie den Codecode wie folgt:
Antwort.write int((5+1)*rnd)
Wenn Sie eine Zufallszahl innerhalb eines bestimmten Bereichs erhalten möchten, deren Untergrenze größer als 0 ist, können Sie die folgende Methode verwenden:
Kopieren Sie den Codecode wie folgt:
Response.write int((upperbound-lowerbound+1)*rnd+lowerbound)
Das folgende Skript erzeugt beispielsweise eine Ganzzahl zwischen 50 und 75 (einschließlich):
Kopieren Sie den Codecode wie folgt:
Antwort.write int((75-50+1)*rnd+50)
Es gibt jedoch ein Problem. Es wird eine Zufallszahl generiert, die jedoch jedes Mal dieselbe ist. Das könnte Sie sehr verwirren. Es gibt eine spezielle Anweisung, die zur Lösung dieses Problems beitragen kann, und das ist die randomize-Anweisung.
Die randomize-Anweisung wird verwendet, um die Funktion rnd zu zwingen, eine neue Zufallszahlenfolge zu verwenden. Die Randomize-Anweisung stellt über den Systemtimer des Computers einen neuen Startwert für die Funktion rnd bereit.
Die Funktion RND() ist eine sehr wichtige Funktion. Wenn Sie eine zufällige Begrüßung, eine zufällige Aufforderung für ein Datum oder sogar ein Spiel erstellen möchten, sollten Sie diese Funktion verwenden.
Die Funktion RND() gibt eine Zufallszahl zwischen 0 und 1 zurück. Hier ist ein Beispiel dieser Funktion und ihrer möglichen Rückgabewerte:
<%=RND()%>
0,7055643
Normalerweise sind Sie eher daran interessiert, diese Funktion zu verwenden, um eine Ganzzahl innerhalb eines bestimmten Bereichs zurückzugeben. Um eine Zahl zurückzugeben, die größer oder gleich 0, aber kleiner als eine bestimmte Ganzzahl ist, können Sie die folgende Anweisung verwenden:
<%=INT((upperbound+1)*RND)%>
Ersetzen Sie die Obergrenze des Ausdrucks durch die größte Zufallszahl, die Sie generieren möchten. Das folgende Skript gibt beispielsweise eine Zahl zwischen 0 und 5 (einschließlich) zurück:
<%=INT(5+1)*RND)%>
Wenn Sie eine Zufallszahl innerhalb eines Bereichs generieren möchten, dessen Untergrenze größer als 0 ist, können Sie das folgende Skript verwenden:
<%=INT((obere Grenze – untere Grenze + 1)*RND+untere Grenze)%>
Das folgende Skript generiert beispielsweise eine Zufallszahl zwischen 50 und 75 (einschließlich):
<%=INT((75-50+1)*RND+50)%>
Es mag Sie überraschen, dass die Funktion RND() bei jeder Verwendung dieselben Zufallszahlen in derselben Reihenfolge zurückgibt. Betrachten Sie das folgende Beispiel:
Kopieren Sie den Codecode wie folgt:
<%
Pick_Greeting=INT((2+1)*RND)
SELECT CASE Pick_Greeting
FALL 0
Begrüßung = „Willkommen!“
FALL 1
Begrüßung = „Hallo!“
FALL 2
Begrüßung = „Freut mich, Sie zu sehen!“
ENDE AUSWÄHLEN
%>
<%=Begrüßung%>
Dieses Skript erstellt und druckt eine zufällige Begrüßung. Es ist jedoch möglich, dass es nicht so funktioniert, wie Sie es sich vorstellen. Immer wenn jemand eine Webseite herunterlädt, die dieses Skript enthält, wird dieselbe zufällige Begrüßung gedruckt. Wenn jemand mehrmals auf diese Seite zurückkehrt, erhält er oder sie die gleiche Begrüßung. Es wird eine Zufallszahl generiert, aber es ist jedes Mal dieselbe Zufallszahl.
Es gibt eine spezielle Aussage, die bei diesem Problem hilft. Mit der RANDOMIZE-Anweisung wird die Funktion RND() gezwungen, eine neue Zufallszahlenfolge zu verwenden. Die RANDOMIZE-Anweisung stellt über den Systemtimer des Computers einen neuen Startwert für die Funktion RND() bereit. Das folgende Beispiel zeigt, wie Sie das obige Beispiel ändern, damit es ordnungsgemäß funktioniert:
Kopieren Sie den Codecode wie folgt:
<%
RANDOMISIEREN
Pick_Greeting=INT((2+1)*RND)
SELECT CASE Pick_Greeting
FALL 0
Begrüßung = „Willkommen!“
FALL 1
Begrüßung = „Hallo!“
FALL 2
Begrüßung = „Freut mich, Sie zu sehen!“
ENDE AUSWÄHLEN
%>
<%=Begrüßung%>
Dieses Skript funktioniert ordnungsgemäß. Jedes Mal, wenn dieses Skript ausgeführt wird, wird eine neue zufällige Begrüßung generiert. Die RANDOMIZE-Anweisung zwingt die Funktion RND(), eine neue Folge von Zufallszahlen zu verwenden.
Wenn Sie schließlich neugierig auf die Verteilung der von der Funktion RND() erzeugten Werte sind, können Sie diese mit dem folgenden Skript ermitteln:
Kopieren Sie den Codecode wie folgt:
<%
CONST-Obergrenze=9,Iterationen=100
REDIM DIST (obere Grenze)
RANDOMISIEREN
FOR i=1 zu Iterationen
rnd_num=INT((upperbound+1)*RND)
DIST(rnd_num)=DIST(rnd_num)&“#“
NÄCHSTE
FOR i=0 bis zur Obergrenze
%>
<%=i&“ : „&DIST(i)%><BR>
<%
NÄCHSTE
%>
Dieses Skript generiert 100 Zufallszahlen zwischen 0 und 9. Es verfolgt, wie viele Zufallszahlen für jeden Wert generiert werden. Abschließend wird ein Balkendiagramm gedruckt, das die Ergebnisse darstellt.