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

时间:2014-07-23 18:49:30

标签: c random numbers

C:

rand() % (max - min) 

假设随机数在0-10之间。

rand() % 10

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

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

int rand = rand() * (max - min) + 1

1 个答案:

答案 0 :(得分:5)

rand()会返回0RAND_MAX之间的数字。然后,您将使用modulo将其约束到某个范围。因此,如果你想要一个0到10之间的数字,你可以rand() % 10