Zusammenfassung Pseudozufallszahlen werden häufig beim Design von Computersoftware verwendet. In diesem Artikel werden die allgemeinen Prinzipien der Pseudozufallszahlengenerierung sowie die Verwendung der Random-Klasse und ihrer im ASP.NET Framework bereitgestellten Methoden zum Generieren von Zufallszahlen in verschiedenen Bereichen vorgestellt, die verschiedene Anforderungen erfüllen. Abschließend wird in Kombination mit der Web-Steuerungsform die Anwendung von Zufallszahlen in ASP.NET im Software-Design erläutert.
Schlüsselwörter ASP.NET; Pseudozufallszahlengenerierung; Web; Zufällige
Zufallszahlen werden häufig im Softwaredesign verwendet, insbesondere in den Bereichen praktische Umgebungssimulation und -tests. Um wirklich zufällige Sequenzen zu verfolgen, haben Menschen viele primitive physikalische Methoden verwendet, um gleichmäßig verteilte Sequenzen zu erzeugen, die die Genauigkeit (Anzahl der Bits) innerhalb eines bestimmten Bereichs erfüllen. Ihre Mängel sind: langsame Geschwindigkeit, geringe Effizienz, großer Speicherbedarf Speicherplatz, Nichtverfügbarkeit usw. Um den Anforderungen der Computersimulationsforschung gerecht zu werden, greifen Menschen auf die Forschung zur Verwendung von Algorithmen zur Generierung pseudozufälliger Sequenzen zurück, die verschiedene Wahrscheinlichkeitsverteilungen simulieren. Pseudozufallszahlen beziehen sich auf Zufallszahlen, die durch mathematische Rekursionsformeln generiert werden. Aus praktischer Sicht ist der einfachste und natürlichste Weg, solche Zahlen zu erhalten, die Verwendung eines Zufallszahlengenerators, der von einer Computersprachenbibliothek bereitgestellt wird. Verschiedene Entwicklungsumgebungen bieten unterschiedliche Funktionen und Methoden zur Generierung von Zufallszahlen. Typischerweise wird eine Pseudozufallsvariable ausgegeben, deren Werte gleichmäßig zwischen 0 und 1 verteilt sind.
Ein Zufallszahlengenerator ist
eine Methode zum Generieren von Zufallszahlen in einem Computer, häufig unter Verwendung der folgenden Formel:
Das Programm, das diese Formel verwendet, um eine Folge von Zufallszahlen a1, a2, ... von 0 bis 65536 zu erzeugen, wird als multiplikativer harmonischer Zufallszahlengenerator mit 232 Schritten bezeichnet. Unter diesen sind b, c und d positive ganze Zahlen, und d wird als Startwert der durch die Formel erzeugten Zufallsfolge bezeichnet.
Aus dieser Formel ist ersichtlich, dass nach der Bestimmung der Parameter b, c und d auch die erzeugte Zufallssequenz bestimmt wird. Diese Folge, die die Zufälligkeit nur bis zu einem gewissen Grad erfüllt, wird Pseudozufallszahl genannt.
Unten finden Sie ein Beispiel für einen Zufallszahlengenerator. Unter anderem ermöglicht die Funktion random_seed dem Benutzer die Auswahl des Startwerts einer Zufallszahl. Wenn der formale Parameter d = 0 ist, wird die aktuelle Zeit des Systems als Startwert für die Zufallszahl verwendet Seed; die Funktion random basiert auf dem gegebenen Seed, berechnet einen neuen Seed und generiert eine neue Zufallszahl im Bereich von niedrig bis hoch.
#define MULTIPLIER 0x015A4E35L
#define INCREMENT 1
void random_seed(unsigned long d){
if (d==0)seed = time(0);
sonst samen = d;}
unsigned int random(unsigned long low, unsigned long high)
{
samen = MULTIPLIER * samen + INKREMENT;
Rückkehr ((Seed>>16)% (hoch-tief) + niedrig);
}
}
Der Pseudozufallszahlengenerierungsmechanismus in ASP.NET
macht es dem Computer unmöglich, vollständig zufällige Zahlen zu generieren. Der sogenannte Zufallszahlengenerator verwendet einen bestimmten Algorithmus, um komplexe Operationen an vorab ausgewählten Zufallszahlen durchzuführen, und verwendet die generierten Ergebnisse, um annähernd völlig zufällige Zahlen zu simulieren. Diese Art von Zufallszahl wird Pseudozufallszahl genannt. Pseudozufallszahlen werden mit gleicher Wahrscheinlichkeit aus einer endlichen Menge von Zahlen ausgewählt. Die gewählten Zahlen sind nicht völlig zufällig, für praktische Zwecke aber ausreichend zufällig.
1. In VB.NET integrierte Funktionen
ASP.NET-Programme können eine Vielzahl von Programmiersprachen verwenden. Obwohl VB.NET und VB etwas ähnlich sind, unterscheiden sich ihre Anwendungsumgebungen und die Schreibmethoden Code ist unterschiedlich. Es gibt auch Unterschiede. Wenn Sie in VB.NET mathematische Funktionen verwenden möchten, müssen Sie die vom .NET Framework bereitgestellte Math-Klasse übergeben, die sich unter dem System-Namespace befindet. Benutzer können Imports Math am Anfang des Codes hinzufügen, um diese zu verwenden mathematische Funktionen.
Der Prototyp der zum Generieren von Zufallszahlen verwendeten Funktion ist: Rnd(x). Diese Funktion wird zum Generieren einer Zufallszahl mit einfacher Genauigkeit zwischen 0 und 1 verwendet. x ist der Startwert für die Generierung von Zufallszahlen. Wenn Sie zufällig eine Zahl aus dem Bereich (min, max) auswählen möchten, müssen Sie die Formel verwenden: Zufallszahl = (max - min) * Rnd(x) + min.
Die Auswahl von Pseudozufallszahlen beginnt mit Zufallsstartwerten. Um sicherzustellen, dass die erhaltenen Pseudozufallszahlen jedes Mal ausreichend „zufällig“ sind, ist die Auswahl von Zufallsstartwerten sehr wichtig. Wenn die ausgewählten Zufallsstartwerte gleich sind, sind auch die generierten Zufallssequenzen gleich. Im Allgemeinen werden Parameter, die sich auf die Systemzeit beziehen, als Zufallsstartwerte verwendet. Dies ist auch die Standardmethode, die vom Zufallszahlengenerator im .net Framework verwendet wird.
2. Zufallszahlenklasse System.Random
Zufallszahlenklasse Die System.Random-Klasse bietet die folgenden Methoden zum Generieren verschiedener Zufallszahlen, die unterschiedliche Anforderungen erfüllen, wie in Tabelle 1 gezeigt:
Tabelle 1 Verschiedene von der System.Random-Klasse bereitgestellte Methoden
Seriennummer | Methodenname | Funktionsbeschreibung |
1 | Nächste() | Gibt eine Ganzzahl zwischen 0 und 2147483647 zurück |
2 | Weiter(i) | Gibt eine Ganzzahl zwischen 0 und i zurück |
3 | Weiter(i,j) | Gibt eine Ganzzahl zwischen i~j zurück |
4 | Nextdouble() | Gibt eine zufällige Dezimalzahl zwischen 0 und 1 zurück |
5 | Nextdouble(byte()) | Verwenden Sie eine zufällige Ganzzahl zwischen 0 und 255 als Wert für jedes Element des Byte-Arrays. |
Die Verwendung der Zufallszahlenklasse System.Random muss zuerst deklariert werden. Wenn Sie die Methode Nextbytes(byte()) verwenden möchten, müssen Sie vor der Verwendung auch das Byte-Array deklarieren.
3. Das Schreiben von Testprogrammen
muss seine Entwicklungs- und Ausführungsumgebung einrichten, bevor das ASP.NET-Programm ausgeführt wird, einschließlich der Konfiguration von Microsoft IIS und der Installation des .NET Framework SDK und des Maschinen-MSE-Editors. Der MSE-Editor ist eine Zusatzsoftware für Microsoft Office und eignet sich sehr gut als Bearbeitungstool für ASP.NET. Der Testprogrammcode lautet wie folgt:
<script language="vb" runat="server">
sub page_load(send as object,e as eventargs)
dim r1 as random =new random()
Response.write("Das Ergebnis von r1.next()ist:"+r1.next().tostring())
Response.write("Theresultofr1.next(100)is:" +r1.next(100).tostring())
Response.write("Das Ergebnis von r1.next(100,150) ist:"+r1.next(100,150).tostring())
Response.write("Das Ergebnis von r1.nextdouble() ist:"+r1.nextdouble().tostring())
r1.nextbytes(r) // dim r(300) als Byte
Response.write("das r(100) ist:")
Antwort.write(r(199))
end sub </script>
Die Testergebnisse sind in Abbildung 1 dargestellt:
Abbildung 1 Ergebnisse des Pseudozufallszahlen-Testlaufs
Beispielanalyse
der Anforderungen einer Entwicklungsanwendung: Erstellen Sie eine Anwendung zur Simulation eines Würfelspiels. In diesem Spiel würfeln die Spieler zufällig. Jeder Würfel hat sechs Seiten, die jeweils die sechs Punkte 1, 2, 3, 4, 5 und 6 darstellen. Wenn der Würfel stoppt, sehen Sie sich die Zahl auf der Oberseite des Würfels an. Wenn die Anzahl der Würfe 6 beträgt, wird die Gewinnermeldung angezeigt, andernfalls wird der Wurf fortgesetzt.
1. Schlüsseltechnologien
1.1 Web-Kontrollformular
Das Web-Kontrollformular verfügt über die objektorientierten Eigenschaften einer Hochsprache. Es ist ein Objekt des System.Web.UI.WebControls-Namespace in ASP.NET. Der Verarbeitungsprozess ähnelt dem HTML-Steuerformular mit den folgenden Merkmalen: Das Formular wird auf der Serverseite ausgeführt. Alle Eingabefelder sind Steuerelemente mit leistungsstarken und umfangreichen Eigenschaften und Methoden, und die Informationen der Eingabefelder können beibehalten werden. Es verfügt über die Möglichkeit, die Eingabefelder zu überprüfen. Enthält Steuerelemente für die Datenanzeige usw.
Ein typischer Web-Steuerelement-Formularcode lautet wie folgt:
<asp: button id="sub3" text="confirm" runat="server"/>
Unter anderem gibt ASP: XXX an, um welche Art von Web-Steuerelement es sich handelt; der Identifikationsname des Steuerelements; Der Wert des Runat-Attributs ist server, was angibt, dass es sich um ein Steuerelement handelt, das auf der Serverseite ausgeführt wird.
Bei den Web-Steuerelementen, die in diesem Beispiel verwendet werden, handelt es sich hauptsächlich um Schaltflächen-Steuerelemente. Das Bildsteuerelement wird zum Anzeigen von Bilddateien verwendet und verfügt über die folgenden Attribute: Imageurl, Angabe der URL der Bilddatei; Breite, Höhe der Bilddateianzeige usw.
1.2 Pseudozufallszahlengenerierung
Gemäß der Beschreibung der Anforderungsanalyse ist es zur Simulation der durch zufälliges Würfeln erhaltenen Punkte erforderlich, zufällig Ganzzahlen im Bereich von 1 bis 6 zu generieren. In diesem Fall die Next (i, j)-Methode der System.Random-Klasse verwendet werden, wobei i=1, j=7. (Der Autor hat ein Testprogramm geschrieben und festgestellt, dass bei j = 6 die generierte Zufallszahl zwischen 1 und 5 liegt.)
2. Programmimplementierung
Der Hauptcode des Programms lautet wie folgt:
<script language="vb" runat="server ">
sub disp(obj as object,e as eventargs)
dim r1 as random =new random() //Definiere eine Zufallszahlenklasse
dim file_prefix as string = "Imagesdie"
dim file_suffix as string = ".png"
value = r1. next(1,7) //Dim-Wert als Ganzzahl
s1 = file_prefix + value.tostring() + file_suffix
pic1.imageurl = s1 //Aktualisieren Sie das imageurl-Attribut des Image-Steuerelements
, wenn value = 6, dann
disp.text = " Sie gewinnen" / /Informationen zur Eingabeaufforderung anzeigen
else
disp.text = "Erneut versuchen"
end if
end sub
</script>
<form id="form1" runat="server"><br>
<asp:button id="disp" runat="server " onclick="disp" text="start"/>
<asp:image id="pic1" runat="server" width="50" height="50"/></form>
Das laufende Ergebnis Das Programm ist in Abbildung 2 dargestellt:
Abbildung 2 Ergebnisse der Programmausführung
Fazit
Pseudozufallszahlen werden an vielen Stellen in Webanwendungen verwendet. Wie man die Startparameter für die Generierung von Zufallssequenzen auswählt und welcher Zufallsalgorithmus zur Generierung von Pseudozufallssequenzen mit besserer Leistung verwendet werden soll, ist Computersoftware Entwickler. Eines der verfolgten Ziele. Mithilfe der vom ASP.NET-Framework bereitgestellten Pseudozufallszahlengenerierungsklasse und den von der Skriptsprache VB.NET bereitgestellten Funktionsmethoden können verschiedene Zufallsfolgen generiert werden, die unterschiedliche Anforderungen erfüllen. Beispielsweise verwendet der zur Identitätsauthentifizierung im Websystem verwendete Zufallsprüfcode eine Zufallszahlengenerierungstechnologie. Es gibt viele Artikel auf dieser Website, daher werde ich hier nicht näher darauf eingehen.