c語言中,rand函數為什麼得依賴sand()函數?
10
都說是send提供種子數,可種子數是什麼概念?要種子數具體做什麼?
最佳回答:
srand(uint i) //函數作用只是放置一顆種子數
{
static uint seed=i;
}
rand()
{
seed=(seed*0x343fd+0x269ec3);
uint ret=(seed*0x343fd+0x269ec3)>>4&0x7fff; //>>右移 &與運算
return ret;
}
即下次調用rand時返回的值便可能和上次不一樣了因為seed值也變了
如果重新設置seed則再調用rand結果不變相當於:
srand(0x1111);
uint s1=rand();
srand(0x1111);
uint s2=rand();
此時s1==s2成立