Why does the rand() return always the same number?

前端 未结 3 1757
没有蜡笔的小新
没有蜡笔的小新 2021-01-07 16:07

I am using

rand(200)

in my Rails application. When I run it in console it always returns random number, but if I use it in appl

3条回答
  •  再見小時候
    2021-01-07 16:30

    Simple pseudo-random number generators actually generate a fixed sequence of numbers. The particular sequence you get is determined by the initial "seed" value. My suspicion is that you are always getting the first number in the same sequence. Therefore I suggest we try to change the sequence by calling srand every time before calling rand, thus changing the seed value every time. The docs explain that, when called without a parameter, srand generates a new seed based on current circumstances (e.g. the time on the clock). Thus you should get a difference sequence and hence a different random number:

    srand
    rand(200)
    

    Now, you may ask - why are you always getting the same sequence? I have no idea! As someone else suggested in one of the comments, the behavior you are seeing is the behavior one would expect if you had other code, anywhere, that calls srand with the same, fixed value every time. So it might be good to look for that.

提交回复
热议问题