Heim Web-Frontend js-Tutorial Wie kann ich den Zufallszahlengenerator in JavaScript setzen?

Wie kann ich den Zufallszahlengenerator in JavaScript setzen?

Nov 29, 2024 pm 05:35 PM

How Can I Seed the Random Number Generator in JavaScript?

Seeding des Zufallszahlengenerators in JavaScript

Einführung:
Der in JavaScript integrierte Zufallszahlengenerator, Math.random() kann nicht explizit gesetzt oder manipuliert werden. Allerdings können externe Funktionen verwendet werden, um Seeding-Funktionen bereitzustellen und qualitativ hochwertige Zufallszahlen mit bestimmten Anfangsbedingungen zu generieren.

Antwort:
Während Math.random() nicht seedbar bleibt, gibt es mehrere In JavaScript gibt es effiziente und robuste PRNG-Funktionen (Pseudozufallszahlengenerator), die gesät werden können und eine hervorragende Zufälligkeit bieten.

Seed Initialisierung:
Um PRNGs richtig zu initialisieren, ist es entscheidend, Seeds mit hoher Entropie zu verwenden. Eine effektive Methode ist die Verwendung von Hash-Funktionen wie cyrb128, die aus Eingabezeichenfolgen verschiedene 128-Bit-Hash-Werte generieren können. Alternativ kann auch das Auffüllen des Startwerts mit Dummy-Daten und das Vorrücken des Generators verwendet werden, obwohl dadurch die Anzahl der Anfangszustände begrenzt wird.

sfc32 (Simple Fast Counter) PRNG:
sfc32 ist ein bemerkenswertes PRNG, das die PractRand-Zufallszahlentestsuite erfolgreich bestanden hat. Es arbeitet mit einem 128-Bit-Status und liefert außergewöhnliche Geschwindigkeit in JavaScript. Ein Beispiel für die Verwendung von sfc32 mit einem benutzerdefinierten Seed-Generator:

function sfc32(a, b, c, d) {
  return function() {
    a |= 0; b |= 0; c |= 0; d |= 0;
    let t = (a + b | 0) + d | 0;
    d = d + 1 | 0;
    a = b ^ b >>> 9;
    b = c + (c << 3) | 0;
    c = (c << 21 | c >>> 11);
    c = c + t | 0;
    return (t >>> 0) / 4294967296;
  }
}

const seedgen = () => (Math.random() * 2 ** 32) >>> 0;
const getRand = sfc32(seedgen(), seedgen(), seedgen(), seedgen());
for (let i = 0; i < 10; i++) console.log(getRand());
Nach dem Login kopieren

Mit diesen Techniken können JavaScript-Entwickler die Leistungsfähigkeit von Seed-PRNGs nutzen, um hochwertige Zufallszahlen für verschiedene Anwendungen zu generieren, von der Simulation bis zur Spieleentwicklung .

Das obige ist der detaillierte Inhalt vonWie kann ich den Zufallszahlengenerator in JavaScript setzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ersetzen Sie Stringzeichen in JavaScript Ersetzen Sie Stringzeichen in JavaScript Mar 11, 2025 am 12:07 AM

Ersetzen Sie Stringzeichen in JavaScript

Benutzerdefinierte Google -Search -API -Setup -Tutorial Benutzerdefinierte Google -Search -API -Setup -Tutorial Mar 04, 2025 am 01:06 AM

Benutzerdefinierte Google -Search -API -Setup -Tutorial

Beispielfarben JSON -Datei Beispielfarben JSON -Datei Mar 03, 2025 am 12:35 AM

Beispielfarben JSON -Datei

8 atemberaubende JQuery -Seiten -Layout -Plugins 8 atemberaubende JQuery -Seiten -Layout -Plugins Mar 06, 2025 am 12:48 AM

8 atemberaubende JQuery -Seiten -Layout -Plugins

10 JQuery Syntax Highlighters 10 JQuery Syntax Highlighters Mar 02, 2025 am 12:32 AM

10 JQuery Syntax Highlighters

Erstellen Sie Ihre eigenen AJAX -Webanwendungen Erstellen Sie Ihre eigenen AJAX -Webanwendungen Mar 09, 2025 am 12:11 AM

Erstellen Sie Ihre eigenen AJAX -Webanwendungen

Was ist ' this ' in JavaScript? Was ist ' this ' in JavaScript? Mar 04, 2025 am 01:15 AM

Was ist ' this ' in JavaScript?

10 JavaScript & JQuery MVC -Tutorials 10 JavaScript & JQuery MVC -Tutorials Mar 02, 2025 am 01:16 AM

10 JavaScript & JQuery MVC -Tutorials

See all articles