我有奇怪的行爲,其中我嘗試生成隨機數 ,他們有時完全相同, 或有問題,如果他們在同一時間創建? 使用VC 2012C隨機數發生器有時產生相同的數字
for (int i = array_size; i < (array_size); i++)
{
srand((unsigned int)time(NULL));
int rw = rand() % 960 + (20); //returns a pseudo-random integer between x resolution size 0 -> width
int rh = rand() % 640 + (20); //returns a pseudo-random integer between x resolution size 0 -> height
lwsl_notice("c:%d width %d height %d\n",c, rw, rh);
c++;
}
的輸出是:
[2016/06/30 09:39:09:7274] NOTICE: c:0 width 606 height 567
[2016/06/30 09:39:09:7274] NOTICE: c:1 width 606 height 567
[2016/06/30 09:39:09:7274] NOTICE: c:2 width 606 height 567
[2016/06/30 09:39:09:7274] NOTICE: c:3 width 606 height 567
你應該在循環之外使用'srand'並且一次。 – ameyCU
oops更正確的dup是[相同的隨機數每個循環迭代](http://stackoverflow.com/q/9251117/995714),[rand()在多個函數調用中是一致的](http://stackoverflow.com/q/29478555/995714),[srand(time(NULL))不會快速更改種子值](http://stackoverflow.com/q/5574914/995714),[srand() - 爲什麼只調用它一次?](http://stackoverflow.com/q/7343833/995714) –