第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

srand(time(NULL))更改種子值的速度不夠快

srand(time(NULL))更改種子值的速度不夠快

C
慕田峪7331174 2019-12-03 16:33:17
我在C中編寫了一個(gè)簡單的隨機(jī)數(shù)生成器。int l下限int u是上限。它工作正常,但是我對播種有疑問。如果要以循環(huán)方式運(yùn)行此代碼,請time(NULL)不要足夠快地更改種子值,以防止獲得一系列連續(xù)的完全相同的隨機(jī)數(shù)。我想知道其他人怎么可能解決這個(gè)問題。我在網(wǎng)上找到的所有示例都time(NULL)用作種子價(jià)值生成器。int generateRandom(int l, int u){   srand(time(NULL));   int r = rand() % ((u - l) + 1);   r = l + r;   return r;}如果我是緊挨著彼此碰撞的幾行代碼,無論是Rand1和Rand2是完全一樣的。printf("Rand1 = %d\n", generateRandom(10, 46));printf("Rand2 = %d\n", generateRandom(10, 46));
查看完整描述

3 回答

?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊

srand(time(NULL))應(yīng)該只運(yùn)行一次以初始化PRNG。當(dāng)應(yīng)用程序啟動時(shí),在Main中執(zhí)行此操作。


說明:


PRNG(偽隨機(jī)數(shù)生成器)根據(jù)所使用的算法生成確定性的數(shù)字序列。給定的算法將始終從給定的起點(diǎn)(種子)產(chǎn)生相同的序列。如果您未明確為PRNG設(shè)置種子,那么通常每次運(yùn)行應(yīng)用程序時(shí),PRNG將從相同的默認(rèn)種子開始,從而導(dǎo)致使用相同的數(shù)字序列。


要解決此問題,您需要在每次運(yùn)行應(yīng)用程序時(shí)為PRNG自己添加不同的種子(以提供不同的序列)。通常的方法是使用time(NULL)根據(jù)當(dāng)前時(shí)間設(shè)置種子。只要您不彼此之間在一秒鐘內(nèi)啟動應(yīng)用程序的兩個(gè)實(shí)例,就可以保證使用不同的隨機(jī)序列。


每次需要新的隨機(jī)數(shù)時(shí),都無需為序列設(shè)定種子。我不確定這一點(diǎn),但是我有一種感覺,根據(jù)所使用的PRNG算法,對每個(gè)新數(shù)字進(jìn)行重新播種實(shí)際上可能會導(dǎo)致結(jié)果序列中的隨機(jī)性降低。


查看完整回答
反對 回復(fù) 2019-12-03
?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

不要每次僅在程序開始時(shí)就對其進(jìn)行播種。


另外,許多書籍建議不要使用C-lib標(biāo)準(zhǔn)隨機(jī)函數(shù)。如果您需要良好的偽隨機(jī)數(shù),請?jiān)赑ress等人的《數(shù)字食譜》第三版中找到一個(gè)好的算法。版。


查看完整回答
反對 回復(fù) 2019-12-03
  • 3 回答
  • 0 關(guān)注
  • 1305 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號