# How to save random number generator state?

**URL:** https://discourse.julialang.org/t/how-to-save-random-number-generator-state/6034
**Category:** Statistics
**Tags:** question
**Created:** [September 21, 2017, 11:29pm UTC](https://discourse.julialang.org/t/how-to-save-random-number-generator-state/6034 "2017-09-21T23:29:40Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [September 21, 2017, 11:29pm UTC](https://discourse.julialang.org/t/how-to-save-random-number-generator-state/6034/1 "2017-09-21T23:29:40Z")

</div>

Suppose I have a loop where I generate samples with a stochastic function:

```julia
srand(2017)

for i=1:1000
  sample = stochastic_function(deterministic_parameters...)
end

```

I need to save the state in order to be able to do some calculations later. That is, I need to be able to pass in the same deterministic parameters and get the same exact sample. What is the appropriate idiom in Julia for achieving this goal?

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [September 22, 2017, 12:58am UTC](https://discourse.julialang.org/t/how-to-save-random-number-generator-state/6034/2 "2017-09-22T00:58:18Z")

</div>

One possible idiom:

```julia
for i=1:1000
  srand(i)
  stochastic_function(deterministic_parameters...)

  # save parameters and the seed
  save(deterministic_parameters, seed)
end

```

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [September 22, 2017, 6:46am UTC](https://discourse.julialang.org/t/how-to-save-random-number-generator-state/6034/3 "2017-09-22T06:46:43Z")

</div>

`Base.Random.GLOBAL_RNG.seed`

---

<div class="post-metadata">

### Author: ![rfourquet](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rfourquet/32/3610_2.png) [@rfourquet](https://discourse.julialang.org/u/rfourquet)
#### Post date: [September 22, 2017, 7:06am UTC](https://discourse.julialang.org/t/how-to-save-random-number-generator-state/6034/4 "2017-09-22T07:06:55Z")

</div>

I don’t really understand what you need, but there is copy for `MersenneTwister`. For example `r = copy(GLOBAL_RNG); rand ()...; copy!(GLOBAL_RNG, r)`.

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [September 22, 2017, 6:18pm UTC](https://discourse.julialang.org/t/how-to-save-random-number-generator-state/6034/5 "2017-09-22T18:18:10Z")

</div>

Thank you all, I am just saving the setting the seed inside of the loop and saving it for now.
