为什么C使用随机数模数?

0 c random numbers

C:

rand() % (max - min) 
Run Code Online (Sandbox Code Playgroud)

让我们说随机是在0-10之间..

rand() % 10
Run Code Online (Sandbox Code Playgroud)

0.567 % 10=那个相同的数字.(0.567).它并没有真正做任何事情.a rand()总是在0-1之间,只要max-min总是> = 1,它就什么都不做.

难道你不只是使用乘法而不是模数?

int rand = rand() * (max - min) + 1
Run Code Online (Sandbox Code Playgroud)

小智 5

rand()返回0和之间的数字RAND_MAX.然后,您将使用modulo将其约束到某个范围.所以,如果你想要一个0到10之间的数字,你会这样做rand() % 10.