C++ No-repeat random number generator

前端 未结 3 1744
慢半拍i
慢半拍i 2020-12-12 05:38

I need to create algorithm implementation in C++ to generate random numbers to f.e table without repeat and list.

I created something code like that but it\'s stop w

3条回答
  •  半阙折子戏
    2020-12-12 06:39

    rand() % n
    

    will never give you a number larger than RAND_MAX. RAND_MAX is the range of the numbers generated by rand().

    If you use a value of n larger than RAND_MAX, you will loop forever after you draw the first RAND_MAX numbers. Simply, there's no numbers left to draw.

    You need to improve your solution to be able to generate larger numbers, or use something better like shuffling a larger list of numbers.

    Your algorithm has many issues, but an immediate simple fix would be:

    rnd_number = (rand() * (RAND_MAX + 1) + rand()) % n;
    

提交回复
热议问题