僅供參考,我遵循此thread。自定義rand()函數返回相同的值
我請從main()
功能此功能,其在範圍[0, N]
返回一個隨機值:
int randr(int min, int max) { int r = (rand() % (max+1-min)+min); return r; }
例如:
int main()
{
unsigned int r=128;
while(r--)
{
int a = randr(0, 63);
int b = randr(64, 127);
printf("%d %d\n", a, b);
}
return 0;
}
的問題是,每次執行該程序時,可變a
和b
總是包含相同的生成值,爲什麼(我的意思是printf總是和終端上的數據相同)?
任何C隨機數教程將給出答案。 – chris 2013-03-15 03:55:30
你需要在使用rand()之前設置你的隨機種子。 – taocp 2013-03-15 03:56:30
可能的重複[爲什麼我總是用rand()函數得到相同的隨機數序列?](http://stackoverflow.com/questions/1108780/why-do-i-always-get-the-same-sequence隨機數與蘭特) – Blastfurnace 2013-03-15 03:59:41