-
Notifications
You must be signed in to change notification settings - Fork 10
Open
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
Metadata
Metadata
Assignees
Labels
No labels