国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

關(guān)于用random生成偽隨機(jī)數(shù)的一個(gè)手筆

2019-11-14 13:48:15
字體:
供稿:網(wǎng)友

  我在想還要不要寫什么文字。確實(shí)不需要太多的文字描述吧。

  前奏插一個(gè)小話題,之前在網(wǎng)上看到這樣的冷笑話(有圖的),一個(gè)程序猿調(diào)試個(gè)程序,早上懷疑某某地方的錯(cuò)誤,下午懷疑某某地方的錯(cuò)誤,晚上懷疑某某地方可能錯(cuò)了,睡覺了還是輾轉(zhuǎn)反側(cè)難以入眠。第二天早上,再看看代碼的時(shí)候,無意中找到了bug,漏下了逗號(hào)“,“,哈哈冷笑話。

  我這次也是疏忽了。在一個(gè)網(wǎng)站的項(xiàng)目中,用random去生成隨機(jī)數(shù),作為上傳文件的名稱。當(dāng)然在需要用戶上傳的文件中是不容易遇到這個(gè)bug的。但是在做爬蟲下載文件也用這個(gè)random生成隨機(jī)數(shù)的話就很可能遇到這個(gè)bug了。因?yàn)槲覀兪怯卯?dāng)前時(shí)間的毫秒去種子的。這里有個(gè)致命的誤區(qū):以為毫秒很小,能產(chǎn)生不相同的種子。但是毫秒雖小,但是程序是高速運(yùn)轉(zhuǎn)的,高速到不可以思議,實(shí)際上在循環(huán)中產(chǎn)生的種子還是相同的。這一點(diǎn)我忽略了。

  描述結(jié)束,上圖:

 

 

代碼特寫(注意產(chǎn)生隨機(jī)數(shù)的方法):

 

 

結(jié)果:產(chǎn)生的隨機(jī)數(shù)的重復(fù)率是很高的,基本上是能連續(xù)重復(fù)三四個(gè)。我猜想是因?yàn)橐缓撩氤绦蚰茏邆€(gè)過程三四遍。

 

 

我們換另一種測試方式,結(jié)果不要重復(fù),在重復(fù)的情況下,就進(jìn)入循環(huán)生成隨機(jī)數(shù)。結(jié)果是生成了999個(gè)之后就進(jìn)入死循環(huán)中了......

 

 

最后,我們修改了生成隨機(jī)數(shù)的方法,確保在循環(huán)中每次random的種子是不相同的。it works !!!

 

 

我們?cè)侔蜒h(huán)去掉,發(fā)現(xiàn),在不需要循環(huán)的情況下,一次性也能產(chǎn)生 10000 個(gè)不相同的隨機(jī)數(shù):

 

 

  原創(chuàng):小明

  Email:weimingyou@126.com

  Date:2015/11/06

  原文鏈接:小明博客園-《關(guān)于用 random 生成偽隨機(jī)數(shù)的一個(gè)手筆》


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 洪江市| 平塘县| 洛川县| 江都市| 炉霍县| 喀什市| 奇台县| 东方市| 漠河县| 施甸县| 榆中县| 界首市| 称多县| 滨州市| 延寿县| 南丰县| 宝山区| 噶尔县| 古田县| 城固县| 康保县| 高要市| 丰镇市| 临猗县| 永靖县| 永川市| 若尔盖县| 新民市| 云梦县| 凤冈县| 安达市| 五峰| 公主岭市| 合川市| 保亭| 九江市| 宿松县| 赫章县| 巴马| 津市市| 南华县|