JavaScript 数値演算 新しいページはコチラ
提供: yonewiki
(→乱数 random) |
(→乱数 random) |
||
898行: | 898行: | ||
とすることで、0~1の小数値が返却されます。どういった数値になるかは呼び出すまではわからないことになっています。 | とすることで、0~1の小数値が返却されます。どういった数値になるかは呼び出すまではわからないことになっています。 | ||
+ | |||
+ | |||
+ | |||
+ | 乱数で、ある確率に収束する、乱数を生成する場合。自分は10までのn進数法をよく使います。計算は長くなります。 | ||
+ | |||
+ | |||
+ | たとえば2進数のビットをすべて乱数で求める仕組みにする場合0~0.5まではビット値0それ以外はビット値1として必要な桁数分だけ繰り返して、2進数値を10進数に変換するなりして、その値によって動作を決定するというような作り方です。10進数でも同じです。値の範囲の取り方をn等分しますので、ここの偏りをつくれば出やすい数値とかが出てしまいます。n等分を均等にするとより分布が安定するかもしれないという予想においては、10進法と2進法による数値決定が一番やりやすいです。スロットなんかでは2進数のビット数くらいの確率で乱数を発生させて動作を決めているので、n進法乱数発生というのを使って、動きを真似してみたりすることを考えたことはあります。 | ||
+ | |||
+ | |||
+ | 乱数に関する数学的考察はいろいろとありますので、これ以上の複雑な話は別の記事にでも記述したいと思います。分布にはいろいろなものがありますので、一口に乱数といってもいろいろな性質をもつものがあることも頭の片隅においておくとよいと思います。なんなら、乱数 分布で検索してより詳細なことについて確認すると良いでしょう。 | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | <HTML> | ||
+ | <HEAD> | ||
+ | <TITLE>JavaScript random</TITLE> | ||
+ | <!--[if lt IE 9]><script type="text/javascript" src="ExplorerCanvas-master/excanvas.js"></script><![endif]--> | ||
+ | <script type="text/x-mathjax-config"> | ||
+ | MathJax.Hub.Config({ | ||
+ | tex2jax: { | ||
+ | inlineMath: [['$','$'], ['\\(','\\)']], | ||
+ | processEscapes: true | ||
+ | }, | ||
+ | CommonHTML: { matchFontHeight: false }, | ||
+ | displayAlign: "left", | ||
+ | displayIndent: "2em" | ||
+ | }); | ||
+ | </script> | ||
+ | <script async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"> | ||
+ | </script> | ||
+ | |||
+ | </HEAD> | ||
+ | <BODY> | ||
+ | JavaScript random<br /> | ||
+ | <SCRIPT Language="JavaScript"> | ||
+ | <!-- | ||
+ | for(var i=0;i < 1000;i++){ | ||
+ | document.write('乱数値 random ', i, '=', Math.random(),'<BR />\n'); | ||
+ | } | ||
+ | --> | ||
+ | </SCRIPT> | ||
+ | |||
+ | </BODY> | ||
+ | </HTML> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | [[Media:JavaScript Math Random.html|サンプル実行結果]] | ||
+ | |||