C# - Random number with seed
18,753
It should not give you 100 same numbers but it should give you exactly the same 100 numbers each time you restart the app.
Seed is used to make random predictable. Imagine multiplayer game where you want something to be random. But you want to make sure that this random behaves the same for each player/client. And seed
is the way to go here.
Author by
TheChilliPL
Updated on July 22, 2022Comments
-
TheChilliPL almost 2 years
I have this code:
var rand = new Random(0); for(int i = 0; i < 100; i++) { Console.WriteLine(rand.Next(0, 100)); }
And program should give me 100 times the same number (because seed is the same), but it gives different numbers...
Why?Edit:
When I will dofor(int i = 0; i < 100; i++) { Console.WriteLine(new Random(0).Next); }
That returns the same number every time. That means, seed is changing? If yes, how? Is it increasing?
-
TheChilliPL over 7 yearsSeed is increasing or what?
-
serhiyb over 7 yearsSeed defines sequence of random number that will be generated. The same sequence is generated for the same seed.
-
TheChilliPL over 7 yearsOk, I understand. Thanks for help
-
TheChilliPL over 7 yearsI have last question - is this sequence repeatable or infinite? I mean if I will call "Next(0, 100)" many times, will sequence go again from start? (Sorry for my English)
-
Marc Gravell over 7 years@TheChilliPL it shouldn't, basically; although that is not a strict guarantee. It is not an inbuilt expectation that it should restart unless you create a new
Random
with the original seed -
TheChilliPL over 7 yearsThanks for help :)
-
TheChilliPL over 7 yearsI have another question - can I find nth random number from seed?