Ich verstehe, dass Sie mit dieser Funktion eine Zufallszahl in JavaScript innerhalb eines Bereichs generieren können:
%Vor%Mit freundlicher Genehmigung von Ionuţ G. Stan hier .
Was ich wissen möchte, ist, wenn Sie mit crypto.getRandomValues () anstelle von Math.random (). Ich möchte in der Lage sein, eine Zahl zwischen 0 und 10 einschließlich oder 0 - 1 oder sogar 10 - 5000 einschließlich zu erzeugen.
Sie werden feststellen, dass Math.random () eine Zahl wie folgt erzeugt: 0.8565239671015732 .
Die getRandomValues-API gibt möglicherweise Folgendes zurück:
Uint8Array(1)
Uint16Array(1)
Uint32Array(1)
. Wie kann ich das also in eine Dezimalzahl zurückübersetzen, damit ich mit dem gleichen Bereichsalgorithmus weitermachen kann? Oder brauche ich einen neuen Algorithmus?
Hier ist der Code, den ich ausprobiert habe, aber es funktioniert nicht so gut.
%Vor%Am unteren Ende (Bereich 0 - 1) gibt es mehr 0 als 1 zurück. Was ist der beste Weg, um es mit getRandomValues () zu machen?
Vielen Dank
Der einfachste Weg ist wahrscheinlich die Zurückweisungsstichprobe (siehe Ссылка ). Angenommen, max - min
ist kleiner als 256:
IMHO, der einfachste Weg, eine Zufallszahl in einem [min..max]
-Bereich mit window.crypto.getRandomValues()
zu erzeugen, wird beschrieben hier .
Ein ECMAScript 2015-Syntax-Code, falls der Link TL; TR :
ist %Vor%Tags und Links javascript random range cryptography