Skip to content

Commit

Permalink
数値: 乱数を得る (途中) #4
Browse files Browse the repository at this point in the history
  • Loading branch information
YoshikuniJujo committed Apr 24, 2017
1 parent df871fd commit c98e829
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions 数値/乱数を得る.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,39 @@ getStdGen :: IO StdGen

##### IO内で簡単に乱数を取得する

乱数の種を更新しながら、
乱数をひとつずつ取り出すには、つぎのように実行します。

```haskell
-- random
> :module System.Random
> getStdGen
551091070 1
> random it :: (Int, StdGen)
(7702268877985608548,1221636208 2103410263)
> setStdGen $ snd it
> getStdGen
1221636208 2103410263
> random it :: (Int, StdGen)
(6127740995264203513,8356773621 1780294415)
> setStdGen $ snd it
```

IO値getStdGenで現在、システムに保存されている乱数の種を取得し、
関数randomでランダムな値と、新しい乱数の種を計算します。
そして、関数setStdGenを使って、新しい乱数の種をシステムに保存します。

このような動きをまとめたのがIO値randomIOです。

```haskell
> randomIO :: IO Int
7202189668116739859
> randomIO :: IO Int
8741390758431768255
```

IO値randomIOは、手軽に乱数値を取得できる便利な値です。

##### 乱数の範囲を指定する

##### 乱数の種をふたつにわける
Expand Down

0 comments on commit c98e829

Please sign in to comment.