Math.log1p()
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.log1p() ã¯éçã¡ã½ããã§ã 1 + x ã®ï¼e ãåºã¨ããï¼èªç¶å¯¾æ°ãè¿ãã¾ããããã§ x ã¯å¼æ°ã§ãã
試ãã¦ã¿ã¾ããã
console.log(Math.log1p(1));
// äºæ³ãããçµæ: 0.6931471805599453
console.log(Math.log1p(0));
// äºæ³ãããçµæ: 0
console.log(Math.log1p(-1));
// äºæ³ãããçµæ: -Infinity
console.log(Math.log1p(-2));
// äºæ³ãããçµæ: NaN
æ§æ
Math.log1p(x)
弿°
x-
-1 以ä¸ã®æ°å¤ã§ãã
è¿å¤
1 + x ã®ï¼e ãåºã¨ããï¼èªç¶å¯¾æ°ã§ãã x ã -1 ã®å ´åã¯ã -Infinity ãè¿ãã¾ãã x < -1 ã®å ´åã¯ã NaN ãè¿ããã¾ãã
解説
x ã®å¤ãé常ã«å°ããã£ãå ´åã 1 ãå ããã¨æå¹ç²¾åº¦ãæ¸å°ãã¾ãã JS ã§ä½¿ç¨ããå精度浮åå°æ°ç¹åã®ç²¾åº¦ã¯ 15 æ¡ã§ãã 1 + 1e-15 = 1.000000000000001 ã§ããã 1 + 1e-16 = 1.000000000000000 ã¨ãªãã 15 æ¡ãè¶
ããæ¡ã¯åæ¨äºå
¥ããããããæ£ç¢ºã« 1.0 ã¨ãªãã¾ãã
log(1 + x) ãè¨ç®ããã¨ã x ãå°ãããã°ã x ã«ã¨ã¦ãè¿ãçãã«ãªãã¯ãã§ãã ã ããã§ãã Math.log(1 + 1.1111111111e-15) ãè¨ç®ããã¨ã 1.1111111111e-15 ã«è¿ãçããå¾ãããã¯ãã§ãããããã 1.00000000000000111022 ã®å¯¾æ°ãåããã¨ã«ãªãã¾ã (忍äºå
¥ã¯äºé²æ°ãªã®ã§ãæã«éãçµæã«ãªããã¨ãããã¾ã) ã®ã§ãçã㯠1.11022â¦e-15 ã¨ãªããæ£ããæ°å㯠3 æ¡ã ãã§ããããã代ããã« Math.log1p(1.1111111111e-15) ãè¨ç®ããå ´åã¯ããã£ã¨ãã£ã¨æ£ç¢ºãªçãã§ãã 1.1111111110999995e-15 ãå¾ããã 15 æ¡ã®æ£ããæ°åãå¾ããã¾ã (ãã®å ´åã¯å®éã«ã¯ 16 æ¡ã§ã)ã
x ã®å¤ã -1 æªæºã§ãã£ãå ´åãè¿å¤ã¯å¸¸ã« NaN ã§ãã
log1p() 㯠Math ã®éçã¡ã½ããã§ãããããçæãã Math ãªãã¸ã§ã¯ãã®ã¡ã½ããã¨ãã¦ã§ã¯ãªãã常㫠Math.log1p() ã¨ãã¦ä½¿ç¨ããããã«ãã¦ãã ãã (Math ã¯ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ã¯ããã¾ãã)ã
ä¾
>Math.log1p() ã®ä½¿ç¨
Math.log1p(-2); // NaN
Math.log1p(-1); // -Infinity
Math.log1p(-0); // -0
Math.log1p(0); // 0
Math.log1p(1); // 0.6931471805599453
Math.log1p(Infinity); // Infinity
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.log1p> |