Inizia con la tabella dei valori
x | y
=======
0 | 15
1 | 45
2 | 75
3 | 105
4 | 135
5 | 165
6 | 195
7 | 225
Impostare l'equazione
y = ax + b
Plug in alcuni valori iniziali
15 = a(0) + b
Risolvere per ogni variabile è possibile
15 = b
collegare diversi valori iniziali
225 = a(7) + 15
Risolvere per tutte le variabili rimanenti
210 = a(7)
30 = a
Ribadire l'equazione
y = 30x + 15
Randomizza x
tra i limiti
x = Math.floor(Math.random() * 8) //0-7
usare in funzione
function customRandomNumber() {
var x;
x = Math.floor(Math.random() * 8);
return 30 * x + 15;
}
Ottenere un numero casuale all'interno di un intervallo con un passo può essere generalizzato nella seguente funzione:
function rand(min, max, step) {
var delta,
range,
rand;
if (arguments.length < 2) {
max = min;
min = 0;
}
if (!step) {
step = 1;
}
delta = max - min;
range = delta/step;
rand = Math.random();
rand *= range;
rand = Math.floor(rand);
rand *= step;
rand += min;
return rand;
}
Quale metterebbe la vostra funzione ione come
rand(15, 225, 30);
Vorrei anche notare, perché avevo dimenticato circa i possibili problemi limiti, la forma generalizzata si non includere il limite superiore di 225. Questo perché Math.random()
restituisce un numero maggiore di, o uguale a zero e inferiore a uno (0 <= Math.random < 1
).Se si desidera includere il limite superiore, è sufficiente includere un passo in più nell'intervallo:
rand(15, 255, 30) //will return 15...225
'Math.floor (Math.random() * 11)' restituirà un numero '[0-10]', mentre 'Math.floor (Math.random() * 10) + 1' sarà restituire un numero '[1-10]'. – zzzzBov