Math.random()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
Math.random() ã¯éçã¡ã½ããã§ã 0 ä»¥ä¸ 1 æªæºã®ç¯å²ã§æµ®åå°æ°ç¹ã®æ¬ä¼¼ä¹±æ°ãè¿ãã¾ãããã®ç¯å²ã§ã¯ã»ã¼åä¸ãªåå¸ã§ãã¦ã¼ã¶ã¼ã¯å¿
è¦ãªã ãç¯å²ã®æ¡å¤§ããããã¨ãã§ãã¾ããå®è£
å´ã§ä¹±æ°çæã¢ã«ã´ãªãºã ã®åæã·ã¼ãã鏿ãã¾ããã¦ã¼ã¶ã¼ãåæã·ã¼ãã鏿ãã¾ãã¯ãªã»ãããããã¨ã¯åºæ¥ã¾ããã
ã¡ã¢:
Math.random() ã®æä¾ããä¹±æ°ã¯ãæå·ã«ä½¿ç¨å¯è½ãªå®å
¨æ§ãåãã¦ãã¾ãããã»ãã¥ãªãã£ã«é¢é£ããç®çã§ã¯ä½¿ç¨ããªãã§ãã ããã代ããã«ã¦ã§ãæå· API (ããå
·ä½çã«ã¯ Crypto.getRandomValues() ã¡ã½ãã) ã使ç¨ãã¦ãã ããã
試ãã¦ã¿ã¾ããã
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
console.log(getRandomInt(3));
// äºæ³ãããçµæ: 0, 1 or 2
console.log(getRandomInt(1));
// äºæ³ãããçµæ: 0
console.log(Math.random());
// äºæ³ãããçµæ: 0 ä»¥ä¸ 1 æªæºã®æ°å¤
æ§æ
Math.random()
弿°
ãªãã
è¿å¤
0 (å«ã) ãã 1 (å«ã¾ãªã) ã¾ã§ã®æ¬ä¼¼ä¹±æ°ã§ããæµ®åå°æ°ç¹æ°ã§ãã
ä¾
JavaScript ã«ãããæ°å¤ã¯ãIEEE 754 æµ®åå°æ°ç¹ã§ã® round-to-nearest-even ãè¡ãããã以ä¸ã®é¢æ°ã®å¤åã ( Math.random() èªä½ã®å¤åãæ£ããã¦ã) å³å¯ã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã
é常ãä¸éå¤ã¯éæã§ãã¾ããããMath.random() ã 1 ã«è¿ãæ°å¤ãè¿ããå ´åããã®ããããªå·®ãè¦æ±ãããæå¤§å¤ã§è¡¨ç¾ã§ããªãå ´åãããããã®çµæãä¸éå¤ãéæããããã¨ãããã¾ãã
0 ä»¥ä¸ 1 æªæºã®ä¹±æ°ãå¾ã
function getRandom() {
return Math.random();
}
2 ã¤ã®å¤ã®éã®ä¹±æ°ãå¾ã
ãã®ä¾ã¯ãæå®ããå¤ã®ç¯å²å
ã®ä¹±æ°ãè¿ãã¾ããè¿ãããå¤ã¯ã min 以ä¸ï¼çããå¯è½æ§ãããã¾ãï¼ã§ã max ããå°ããï¼çãããªãï¼å¤ã§ãã
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
2 ã¤ã®å¤ã®éã®ã©ã³ãã ãªæ´æ°ãå¾ã
ãã®ä¾ã¯æå®ããå¤ã®éã®ã©ã³ãã ãªæ´æ°ãè¿ãã¾ããè¿å¤ã¯ min ä»¥ä¸ (min ãæ´æ°ã§ãªãå ´åã min ãã大ããæ¬¡ã®æ´æ°ä»¥ä¸)ã max æªæºã§ãã
function getRandomInt(min, max) {
const minCeiled = Math.ceil(min);
const maxFloored = Math.floor(max);
return Math.floor(Math.random() * (maxFloored - minCeiled) + minCeiled); // ä¸éã¯é¤ããä¸éã¯å«ã
}
ã¡ã¢:
Math.round() ãä½¿ãæ¹ãé
åçããããã¾ãããããã®å ´åã¯ä¹±æ°ãä¸åä¸ãªåå¸ã«å¾ããã¨ã«ãªãã®ã§ãã¦ã¼ã¶ã¼ã®ãã¼ãºã«åããªãããããã¾ããã
å æ¬çã« 2 ã¤ã®å¤ã®éã®ã©ã³ãã ãªæ´æ°ãå¾ã
ä¸è¨ã® getRandomInt() 颿°ãè¿ãä¹±æ°ã®ç¯å²ã¯æå°å¤ãå«ã¿ã¾ãããæå¤§å¤ã¯é¤å¤ããã¾ããæå°å¤ãæå¤§å¤ãç¯å²ã«å«ã¾ããä¹±æ°ãçæããããªãã以ä¸ã® getRandomIntInclusive() 颿°ã使ãã¨ããã§ãããã
function getRandomIntInclusive(min, max) {
const minCeiled = Math.ceil(min);
const maxFloored = Math.floor(max);
return Math.floor(Math.random() * (maxFloored - minCeiled + 1) + minCeiled); // ä¸éãå«ã¿ãä¸éãå«ã
}
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.random> |