Baseline Widely available
СÑаÑиÑеÑкий меÑод Math.random()
возвÑаÑÐ°ÐµÑ Ð¿ÑевдоÑлÑÑайное ÑиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой, коÑоÑое болÑÑе или Ñавно нÑÐ»Ñ Ð¸ менÑÑе единиÑÑ Ñ Ð¿ÑиблизиÑелÑно ÑавномеÑнÑм ÑаÑпÑеделением в ÑÑом диапазоне. РдалÑнейÑем ÑÑо ÑиÑло можно «оÑмаÑÑÑабиÑоваÑÑ», пÑивеÑÑи к нÑÐ¶Ð½Ð¾Ð¼Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ. ÐÑÐ±Ð¾Ñ Ð½Ð°ÑалÑного ÑиÑла Ð´Ð»Ñ Ð°Ð»Ð³Ð¾ÑиÑма генеÑаÑии ÑлÑÑайнÑÑ
ÑиÑел пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð°Ð²ÑомаÑиÑеÑки (завиÑÐ¸Ñ Ð¾Ñ ÑеализаÑии) и не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñн полÑзоваÑелем.
ÐÑимеÑание: ÐеÑод Math.random()
не пÑедоÑÑавлÑÐµÑ ÐºÑипÑогÑаÑиÑеÑки ÑÑойкие ÑлÑÑайнÑе ÑиÑла. Ðе иÑполÑзÑйÑе его ни Ð´Ð»Ñ Ñего, ÑвÑзанного Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑÑ. ÐÐ»Ñ ÑакиÑ
Ñелей иÑполÑзÑйÑе Web Crypto API и более ÑоÑнÑй меÑод window.crypto.getRandomValues()
.
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
console.log(getRandomInt(3));
// Expected output: 0, 1 or 2
console.log(getRandomInt(1));
// Expected output: 0
console.log(Math.random());
// Expected output: a number from 0 to <1
СинÑакÑÐ¸Ñ ÐаÑамеÑÑÑ
ÐеÑ.
ÐозвÑаÑаемое знаÑениеÐÑевдоÑлÑÑайное ÑиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой Ð¾Ñ 0 (вклÑÑиÑелÑно) до 1 (не вклÑÑаÑ).
ÐÑимеÑÑÐбÑаÑиÑе внимание, ÑÑо поÑколÑÐºÑ ÑиÑла в JavaScript ÑвлÑÑÑÑÑ ÑиÑлами Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой ÑÑандаÑÑа IEEE 754 Ñ Ð¾ÐºÑÑглением к ближайÑÐµÐ¼Ñ ÑÑÑномÑ, иÑполÑзÑемÑе в пÑиведÑннÑÑ
ÑÑнкÑиÑÑ
Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ (иÑклÑÑÐ°Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ñ Ð¿ÑоÑÑÑм вÑзовом Math.random()
), не ÑоÑнÑ. ÐÑли Ð·Ð°Ð´Ð°Ð½Ñ Ð¾ÑÐµÐ½Ñ Ð±Ð¾Ð»ÑÑие гÑаниÑÑ (253 или вÑÑе), возможен кÑайне Ñедкий ÑлÑÑай доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±ÑÑно иÑклÑÑÑнной веÑÑ
ней гÑаниÑÑ.
function getRandom() {
return Math.random();
}
ÐолÑÑение ÑлÑÑайного ÑиÑла в заданном инÑеÑвале
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÑлÑÑайное ÑиÑло в заданном инÑеÑвале. ÐозвÑаÑаемое знаÑение не менее (и Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñавно) min
и не более (и не Ñавно) max
.
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
ÐолÑÑение ÑлÑÑайного Ñелого ÑиÑла в заданном инÑеÑвале
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÑлÑÑайное Ñелое ÑиÑло в заданном инÑеÑвале. ÐозвÑаÑаемое знаÑение не менее min
(или ÑледÑÑÑее Ñелое ÑиÑло, коÑоÑое болÑÑе min
, еÑли min
не Ñелое) и не более (но не Ñавно) max
.
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min) + min); // ÐакÑимÑм не вклÑÑаеÑÑÑ, минимÑм вклÑÑаеÑÑÑ
}
ÐÑимеÑание: ÐÐ¾Ð¶ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð·Ð°Ð¼Ð°Ð½ÑивÑм иÑполÑзоваÑÑ Math.round()
Ð´Ð»Ñ Ð¾ÐºÑÑглениÑ, но ÑÑо Ð¼Ð¾Ð¶ÐµÑ ÑделаÑÑ ÑаÑпÑеделение неÑавномеÑнÑм и оказаÑÑÑÑ Ð½Ðµ Ñем, ÑÑо вам нÑжно.
ФÑнкÑÐ¸Ñ getRandomInt()
вÑÑе вклÑÑÐ°ÐµÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñное знаÑение, но не вклÑÑÐ°ÐµÑ Ð¼Ð°ÐºÑималÑное. Ðо ÑÑо еÑли вам нÑжно, ÑÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑалоÑÑ Ð¸ минималÑное, и макÑималÑное знаÑение? ФÑнкÑÐ¸Ñ getRandomIntInclusive()
ÑеÑÐ°ÐµÑ ÑÑÐ¾Ñ Ð²Ð¾Ð¿ÑоÑ.
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1) + min); // ÐакÑимÑм и минимÑм вклÑÑаÑÑÑÑ
}
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4