差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン両方とも次のリビジョン
programming:nim:random [2018/11/11] – [ランダム関数の種類] ikatakosprogramming:nim:random [2018/11/11] ikatakos
行 1: 行 1:
 ======random - Nimで乱数生成====== ======random - Nimで乱数生成======
  
-Nimで乱数生成は、randomモジュールを使う。+Nimで乱数生成は、''random''または''mersenne''モジュールを使う。
  
   * [[https://nim-lang.org/docs/random.html|Module random]]   * [[https://nim-lang.org/docs/random.html|Module random]]
 +  * [[https://nim-lang.org/docs/mersenne.html|Module mersenne]]
  
-ただし、これは実行毎に同じ乱数列が生成される。+=====mersennneモジュール===== 
 + 
 +シンプルなメルセンヌツイスタ発生器。uint32型のみ。 
 + 
 +<code> 
 +import mersenne 
 + 
 +let mt = newMersenneTwister(1234)  # 最初にシードを与えて初期化 
 +for i in 1..5: 
 +    echo mt.getNum 
 + 
 +# => 
 +# 407788156 
 +# 1071751096 
 +# 3805347140 
 +# 2262621205 
 +# 828021025 
 +</code> 
 + 
 +=====randomモジュール===== 
 + 
 +intやfloatなど汎用的に乱数を生成させる。ただ暗号強度とては弱いっぽい。 
 + 
 +AtCoderのver.0.13ではまだ使えない。 
 + 
 +注意点として、シードを与えずとも使えるのだがその場合は実行毎に同じ乱数列が生成される。
  
 <sxh nim> <sxh nim>
行 68: 行 94:
  
  
-=====ver.0.13用=====+=====C言語から=====
  
-AtCoderのバージョンではrandomがまだ無くて使えないっぽい。ので、C言語から持ってくる。+''rand()''関数をC言語から持ってくることもできる。
  
 <sxh nim> <sxh nim>
programming/nim/random.txt · 最終更新: 2018/11/11 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0