Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > de.comp.lang.javascript > #5157
| From | Stefan Reuther <stefan.news@arcor.de> |
|---|---|
| Newsgroups | de.comp.lang.javascript |
| Subject | Re: Zufallszahl mit vielen Nullen |
| Date | 2019-09-18 18:50 +0200 |
| Message-ID | <qltua1.1rs.1@stefan.msgid.phost.de> (permalink) |
| References | <gucq2bF9v1pU1@mid.individual.net> |
Am 17.09.2019 um 21:21 schrieb Micha Kuehn:
> Ich habe mir gedacht:
> 1. ich erzeuge eine beliebige Zufallszahl in diesem Bereich.
> 2. ich mache einen String daraus, weil man dann direkter auf die
> einzelnen Stellen zugreifen kann.
> 3. ich erzeuge eine n-elementige Menge von Zufallszahlen im Bereich 1
> bis anzahlstellen der Zahl. Menge heißt hier: diese n Zahlen dürfen sich
> nicht doppeln.
> 4. Die entsprechenden Stellen der Zufallszahl überschreibe ich mit "0".
> 5. Aus diesem String mache ich wieder eine Zahl.
>
> Wie geht Schritt 3? Wie kann ich n sich nicht wiederholende
> Zufallszahlen von 1-anzstellen ziehen? Gibt es Mengen in JavaScript?
Mach ein Array mit all den Zahlen und zieh Elemente daraus.
// Array mit den Zahlen 0 .. 99
var a = Array.from(Array(100).keys());
// Ziehe 20 aus 100 ohne Wiederholungen
for (var i = 0; i < 20; ++i) {
console.log(a.splice(Math.random()*a.length|0, 1)[0]);
}
('Math.random()*a.length' = zufälliger Index für das verbleibende Array,
'|0' = Math.trunc(), 'splice' = Element aus dem Array rausschneiden und
zurückgeben)
> Oder gibt es für mein Vorhaben einen ganz anderen, besseren Ansatz?
Den Schritt 5 solltest du auf jeden Fall weglassen. JavaScript-Zahlen
haben nur begrenzte Genauigkeit, konkret: 53 Bits.
>> Math.pow(2, 53)-1
<- 9007199254740991
>> Math.pow(2, 53)
<- 9007199254740992
>> Math.pow(2, 53)+1
<- 9007199254740992
Wenn du eh ein Zahlwort draus machen willst, wirst du das Ergebnis eh in
Dreier-/Sechsergruppen verarbeiten, und das geht am besten als String.
Insofern wäre auch zu überlegen, den Schritt 1 gleich als String
auszuführen.
Stefan
Back to de.comp.lang.javascript | Previous | Next — Previous in thread | Find similar
Zufallszahl mit vielen Nullen Micha Kuehn <micha-usenet@nurfuerspam.de> - 2019-09-17 21:21 +0200
Re: Zufallszahl mit vielen Nullen Robin Koch <robin.koch@t-online.de> - 2019-09-18 00:55 +0200
Re: Zufallszahl mit vielen Nullen Micha Kuehn <micha-usenet@nurfuerspam.de> - 2019-09-18 21:58 +0200
Re: Zufallszahl mit vielen Nullen Stefan Reuther <stefan.news@arcor.de> - 2019-09-18 18:50 +0200
csiph-web