DE
JavaScript - Math.random() Methode - Beispiel
3 points
Die Math.random()
Funktion gibt eine Gleitkomma-, Pseudozufallszahl zwischen dem Bereich [0,1), 0 (einschließlich) und 1 (exklusiv). Basierend auf dieser Funktion kann man Zufallszahlen im Bereich erhalten, wie man in den folgenden Beispielen sehen kann.
Einfaches Verwendungsbeispiel:
xxxxxxxxxx
1
console.log( Math.random() ); // 0.9100486004606172
2
console.log( Math.random() ); // 0.8630710741089413
3
console.log( Math.random() ); // 0.8052253695967542
4
5
function randomInt(min, max) {
6
return min + Math.floor((max - min) * Math.random());
7
}
8
9
function randomFloat(min, max) {
10
return min + (max - min) * Math.random();
11
}
12
13
console.log( randomInt( 10, 20) ); // 12
14
console.log( randomInt(-10, 10) ); // -4
15
16
console.log( randomFloat( 10, 20) ); // 14.514897223860018
17
console.log( randomFloat(-10, 10) ); // -6.645075993092653
Syntax | Math.random() |
Parameter | Diese Methode akzeptiert keine Argumente. |
Ergebnis | Gleitkommanumber wert (primitiver Wert). |
Beschreibung | random ist eine statische Methode, die eine zufällige Gleitkommazahl aus dem Bereich <0, 1) - einschließlich 0 und exklusiv 1 - zurückgibt. |
Dieses Beispiel zeigt, wie man Zufallszahlen mit der exklusiven max. randomzeFloat()
Methode auf folgende Weise überschreiben:
randomzeFloat()
- generiert Zahlen im Bereich von0
bisNumber.MAX_VALUE
(exklusiv),randomzeFloat(max)
- generiert Zahlen im Bereich von0
bismax
(exklusiv) -max
Wert muss positiv sein,randomzeFloat(min, max)
- generiert Zahlen im Bereich vonmin
bismax
(exklusiv).
xxxxxxxxxx
1
/*
2
inklusive min (Ergebnis kann gleich min Wert sein)
3
exklusive max (Ergebnis entspricht dem max Wert nicht)
4
*/
5
function randomizeFloat(min, max) {
6
if (max == null) {
7
if (min <= 0) {
8
throw new Error('Max value must be positive.');
9
}
10
11
max = (min == null ? Number.MAX_VALUE : min);
12
min = 0.0;
13
}
14
15
if (min >= max) {
16
throw new Error("Incorrect arguments.");
17
}
18
19
return min + (max - min) * Math.random();
20
}
21
22
// Beispiel:
23
24
console.log(randomizeFloat()); // 1.67319916301163e+308
25
console.log(randomizeFloat(5)); // 2.7593705936801918
26
console.log(randomizeFloat(10, 80)); // 37.54521514384005
27
console.log(randomizeFloat(-50, 50)); // -30.632843429520975
xxxxxxxxxx
1
// generiert Werte aus <0, 1>
2
function randomizeValue() {
3
var value = (1 + 10E-16) * Math.random();
4
5
if (value > 1.0) {
6
return 1.0;
7
}
8
9
return value;
10
}
11
12
/*
13
inklusive min (Ergebnis kann gleich min Wert sein)
14
inklusive max (Ergebnis entspricht dem Maximalwert nicht)
15
*/
16
function randomizeFloat(min, max) {
17
if(max == null) {
18
max = (min == null ? Number.MAX_VALUE : min);
19
min = 0.0;
20
}
21
22
if(min >= max) {
23
throw new Error("Incorrect arguments.");
24
}
25
26
return min + (max - min) * randomizeValue();
27
}
28
29
// Beispiel:
30
31
console.log(randomizeFloat()); // 1.1960373039711962e+308
32
console.log(randomizeFloat(5)); // 0.7663988388633522
33
console.log(randomizeFloat(10, 80)); // 67.81113931017913
34
console.log(randomizeFloat(-50, 50)); // -13.713816892801674
xxxxxxxxxx
1
/*
2
inklusive min (Ergebnis kann gleich min Wert sein)
3
exklusive max (Ergebnis entspricht dem Maximalwert nicht)
4
*/
5
function randomizeInteger(min, max) {
6
if(max == null) {
7
max = (min == null ? Number.MAX_SAFE_INTEGER : min);
8
min = 0;
9
}
10
11
min = Math.ceil(min); // inklusive min
12
max = Math.floor(max); // exklusive max
13
14
if(min > max - 1) {
15
throw new Error("Incorrect arguments.");
16
}
17
18
return min + Math.floor((max - min) * Math.random());
19
}
20
21
// Beispiel:
22
23
console.log(randomizeInteger()); // 5547382624322139
24
console.log(randomizeInteger(5)); // 3
25
console.log(randomizeInteger(10, 80)); // 62
26
console.log(randomizeInteger(-50, 50)); // -8
xxxxxxxxxx
1
/*
2
inklusive min (Ergebnis kann gleich min Wert sein)
3
inklusive max (Ergebnis entspricht dem Maximalwert nicht)
4
*/
5
function randomizeInteger(min, max) {
6
if(max == null) {
7
max = (min == null ? Number.MAX_SAFE_INTEGER : min);
8
min = 0;
9
}
10
11
min = Math.ceil(min); // inklusive min
12
max = Math.floor(max); // exklusive max
13
14
if(min > max - 1) {
15
throw new Error("Incorrect arguments.");
16
}
17
18
return min + Math.floor((max - min + 1) * Math.random());
19
}
20
21
// Beispiel:
22
23
console.log(randomizeInteger()); // 5918572174489812
24
console.log(randomizeInteger(5)); // 5
25
console.log(randomizeInteger(10, 80)); // 60
26
console.log(randomizeInteger(-50, 50)); // -15
- Zufallszahlengenerator - Wikipedia ENG
- Pseudozufallszahlengenerator - Wikipedia
- Liste von Zufallszahlengeneratoren - Wikipedia