JuliaRandom / JuliaRandom/StableRNGs.jl

Streams of different seeded RNG partially correlated when the seed and the difference in seed is small

Open
#9 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
76
Forks
10
Avg merge
20m
Merged PRs (30d)
1

Description

Just noticing this behaviour. The streams of different seeded RNG is partially correlated when the seed (and the difference in seed) is small. Perhaps it is well known, just I didn't read about it in the package readme:

```
using Random, StableRNGs
rDiff(rngFunction,seedBase,seedDiff,repetitions) = norm(rand(rngFunction(seedBase),repetitions) .- rand(rngFunction(seedBase+seedDiff),repetitions))/repetitions

# Seed base 1000: ok
rDiff(StableRNG,1000,1,100000) # 0.00129
rDiff(StableRNG,1000,10,100000) # 0.00129
rDiff(StableRNG,1000,1000,100000) # 0.00129

rDiff(MersenneTwister,1000,1,100000) # 0.00129
rDiff(MersenneTwister,1000,10,100000) # 0.00129
rDiff(MersenneTwister,1000,1000,100000) # 0.00129

# Seed base 10: Still ok
rDiff(StableRNG,10,1,100000) # 0.00129
rDiff(StableRNG,10,10,100000) # 0.00129
rDiff(StableRNG,10,1000,100000) # 0.00129

rDiff(MersenneTwister,10,1,100000) # 0.00129
rDiff(MersenneTwister,10,10,100000) # 0.00129
rDiff(MersenneTwister,10,1000,100000) # 0.00129

# Seed base 1: We start seeing problems for StableRNG..
rDiff(StableRNG,1,1,100000) # 0.00125 <--
rDiff(StableRNG,1,10,100000) # 0.00129
rDiff(StableRNG,1,1000,100000) # 0.00129

rDiff(MersenneTwister,1,1,100000) # 0.00129
rDiff(MersenneTwister,1,10,100000) # 0.00129
rDiff(MersenneTwister,1,1000,100000) # 0.00129

# Seed base 0: Unexpected results for for StableRNG..
rDiff(StableRNG,0,1,100000) # 0.00105 <----------
rDiff(StableRNG,0,2,100000) # 0.00116 <-----
rDiff(StableRNG,0,5,100000) # 0.00123 <---
rDiff(StableRNG,0,10,100000) # 0.00126 <--
rDiff(StableRNG,0,1000,100000) # 0.00129

rDiff(MersenneTwister,0,1,100000) # 0.00130 <-
rDiff(MersenneTwister,0,2,100000) # 0.00129
rDiff(MersenneTwister,0,5,100000) # 0.00129
rDiff(MersenneTwister,0,10,100000) # 0.00129
rDiff(MersenneTwister,0,1000,100000) # 0.00129
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.