So Erzeugen Sie eine zufällige Zahl fester Länge mit JavaScript?
Ich versuche, eine zufällige Zahl erzeugt, die eine Feste Länge von genau 6 stellen.
Ich weiß nicht, ob JavaScript da unten würde immer eine Nummer weniger als 6 stellen?
Math.floor((Math.random()*1000000)+1);
Fand ich diese Frage und Antwort auf StackOverflow hier. Es ist aber unklar.
EDIT: lief ich den oben genannten code ein paar mal, und ja, es Häufig schafft zahlen weniger als 6 Ziffern. Gibt es eine schnelle/schnellen Weg, um sicherzustellen, es ist immer genau 6 Ziffern?
- Mögliche Duplikate von Zufällige Zahl mit fester Länge
- Hallo Leute, ich möchte gleich mit 70 Ziffer Länge.
Du musst angemeldet sein, um einen Kommentar abzugeben.
JS:
Wird immer erstellen Sie eine Reihe von 6 Ziffern, und es sorgt für die erste Ziffer wird nie 0 sein. Der code in deiner Frage wird erstellen Sie eine Reihe von weniger als 6 stellen.
Nur absolut zuverlässige Antwort bietet eine vollständige Zufälligkeit, ohne Verlust. Die anderen diejenigen, die vor dieser Antwort alles verliert sich, je nachdem, wie viele Zeichen, die Sie wollen. Je mehr Sie wollen, desto mehr verlieren Sie den Zufall.
Sie erreichen es durch die Begrenzung der Höhe der zahlen möglich vor der festen Länge.
So zum Beispiel eine zufällige Zahl fester Länge 2 würde 10 - 99. 3, 100 - 999. Für 4 -, 1000 - 9999. Für 5 10000 - 99999 und so weiter. Wie gesehen werden kann, durch das Muster, es schlägt 10% Verlust an Zufälligkeit, weil die zahlen davor sind nicht möglich. Warum?
Für wirklich große zahlen ( 18, 24, 48 ) 10% ist immer noch eine Menge von zahlen zu Locker auf.
Dem generator erlaubt, für ~unendlich lang ohne verlustbehaftete Präzision und mit minimalen Leistungseinbußen.
Beispiel:
Wie Sie sehen können, auch die null enthalten sind zunächst die ein zusätzliche 10% Verlust nur, dass, neben der Tatsache, dass die Zahl vor der 10^n sind nicht möglich.
Dass jetzt insgesamt 20%.
Auch die anderen Optionen haben eine Obere Grenze, wie viele Zeichen Sie können tatsächlich erzeugen.
Hardcore (lol):
Generell, erzeugt eine zufällige ganze Zahl mit fester Länge kann man mit Hilfe
Math.pow
:Antwort auf die Frage:
randomFixedInteger(6);
Ich würde mit dieser Lösung:
gibt eine Reihe von 100000 bis 999999 (inklusive).
Basierend auf den link haben Sie zur Verfügung gestellt, die richtige Antwort sollte sein
Math.random() returns float zwischen 0 und 1, also minimale Zahl 100000, max - 999999. Genau 6 Ziffern, wie Sie es wollten 🙂
Habe ich die unter-Funktion zu generieren, die eine zufällige Anzahl von fix-Länge:
Dies wird im wesentlichen fügen Sie die 0 am Anfang, um die Länge der Nummer.
Ich dachte über heute und gehen Sie dann mit der Lösung.
Lassen Sie mich wissen, wenn es irgendeinen Fehler. Danke.
"Zum Generieren von Zufallszahl Mit JS"
JS:
HTML:
Dies ist ein weiterer random number generator, dass ich Häufig verwenden, es verhindert auch, dass die erste Ziffer von zero(0)
JS:
Dieser code bietet eine nahezu vollständige Zufälligkeit:
JS:
Dieser code bietet eine vollständige Zufälligkeit:
JS:
JS:
Kann dies auf einfachste Weise und zuverlässig ein.
parseInt(Math.random().toString().slice(2,Math.min(length+2, 18)), 10); //18 -> due to max digits in Math.random
Update:
Diese Methode hat einige Mängel:
- Manchmal ist die Anzahl der Ziffern könnte geringer sein, wenn seine Links aufgefüllt mit Nullen.
Math.random()
zurückgeben kann 0 oder 1 genau, und diese würden umgewandelt werden, um die Saiten'0'
oder'1'
, und dann.slice(2, ...)
würde eine leere Zeichenfolge zurückgeben, und dannparseInt()
zurückkehren würdeNaN
.Können Sie dieses Modul verwenden,https://www.npmjs.com/package/uid, es erzeugt eine variable Länge unique-id
Oder Sie können einen Blick auf dieses Modul https://www.npmjs.com/package/shortid
Hoffe, es funktioniert für dich 🙂