Using Randomize() before Rnd() in VB.NET

前端 未结 3 1692
野趣味
野趣味 2020-12-07 03:46

I have previously been told that I should always use Randomize() before I use Rnd() in a VB.NET application. Yet, it always seems to work fine with

3条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-07 04:17

    In Visual Basic, Rnd() uses a mathematical operation to produce the next "random" number. Because the actual operation is known, given a specific value, you can predict the next value. However, given an arbitray start value the numbers have good distribution - these are "pseudo-random" numbers.

    To keep Rnd() from startng at a predictable number (and hence giving the same sequence of "random" numbers every time), Randomize() should be called to use the machine clock to set the initial value (called a seed).

    (In the .NET world, I'd use System.Random instead if you can.)

提交回复
热议问题