差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン | 次のリビジョン両方とも次のリビジョン | ||
programming:nim:random [2018/11/11] – [ランダム関数の種類] ikatakos | programming:nim:random [2018/11/11] – ikatakos | ||
---|---|---|---|
行 1: | 行 1: | ||
======random - Nimで乱数生成====== | ======random - Nimで乱数生成====== | ||
- | Nimで乱数生成は、randomモジュールを使う。 | + | Nimで乱数生成は、'' |
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
- | ただし、これは実行毎に同じ乱数列が生成される。 | + | =====mersennneモジュール===== |
+ | |||
+ | シンプルなメルセンヌツイスタ発生器。uint32型のみ。 | ||
+ | |||
+ | < | ||
+ | import mersenne | ||
+ | |||
+ | let mt = newMersenneTwister(1234) | ||
+ | for i in 1..5: | ||
+ | echo mt.getNum | ||
+ | |||
+ | # => | ||
+ | # 407788156 | ||
+ | # 1071751096 | ||
+ | # 3805347140 | ||
+ | # 2262621205 | ||
+ | # 828021025 | ||
+ | </ | ||
+ | |||
+ | =====randomモジュール===== | ||
+ | |||
+ | intやfloatなど汎用的に乱数を生成させる。ただ暗号強度としては弱いっぽい。 | ||
+ | |||
+ | AtCoderのver.0.13ではまだ使えない。 | ||
+ | |||
+ | 注意点として、シードを与えずとも使えるのだが、その場合は実行毎に同じ乱数列が生成される。 | ||
<sxh nim> | <sxh nim> | ||
行 68: | 行 94: | ||
- | =====ver.0.13用===== | + | =====C言語から===== |
- | AtCoderのバージョンではrandomがまだ無くて使えないっぽい。ので、C言語から持ってくる。 | + | '' |
<sxh nim> | <sxh nim> |