我通过做一个简单的基于控制台的测验应用程序来练习时注意到了这一点。当我使用rand()
它时,它会连续多次给我相同的值。数字范围越小,问题越大。
例如
for (i=0; i<10; i++) {
x = rand() % 20 + 1;
cout << x << ", ";
}
会给我1, 1, 1, 2, 1, 1, 1, 1, 14,
- 肯定太多了,对吧?我通常从无到4个奇数(其余的都一样,也可以11, 11, 11, 4, 11 ...
)
难道我做错了什么?还是rand()
不是我想的那么随机?
(或者这只是我不知道的 C#/Java 的一些习惯?它也经常发生在我身上……)