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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

已設(shè)置 rand 的種子,但輸出紅包金額相同

func?SimpleRand(count,?amount?int64)?int64?{
???//?當(dāng)紅包剩余一個(gè)
???if?count?==?1?{
??????return?amount
???}
???//?計(jì)算最大可調(diào)度金額
???max?:=?amount?-?min*count
???rand.Seed(time.Now().UnixNano())
???x?:=?rand.Int63n(max)?+?min
???return?x
}
func?main()?{
???count,?amount?:=?int64(10),?int64(100)
???for?i?:=?int64(0);?i?<?count;?i++?{
??????x?:=?algo.SimpleRand(count,?amount*100)
??????fmt.Print(float64(x)/float64(100),?",?")
???}
???fmt.Println()
}

各位小伙伴,已設(shè)置 rand 的種子,最后輸出的紅包金額相同。

輸出:32.74, 54.66, 54.66, 54.66, 54.66, 54.66, 54.66, 54.66, 54.66, 54.66,?

如果設(shè)置這樣

for?i?:=?int64(0);?i?<?count;?i++?{
???time.Sleep(10)
???x?:=?algo.SimpleRand(count,?amount*100)
???fmt.Print(float64(x)/float64(100),?",?")
}

紅包金額才能跟老師的一樣。

這是程序運(yùn)行太快,時(shí)間差太小導(dǎo)致的嗎?

正在回答

5 回答

@?PumkinPie?sleep的方法不可取啊,rand.Seed是為了改變初始隨機(jī)種子數(shù),反正程序重新啟動(dòng)時(shí)的隨機(jī)序列一樣的,只要保證每次重啟后的初始隨機(jī)種子數(shù)不一樣就行。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

PumpkinPie_ 提問(wèn)者

好,謝謝老師
2019-03-20 回復(fù) 有任何疑惑可以回復(fù)我~
#2

lili001 回復(fù) PumpkinPie_ 提問(wèn)者

紅包的總金額不對(duì)吧,早就超過(guò)100了
2019-07-31 回復(fù) 有任何疑惑可以回復(fù)我~
func?test2(){

???amount?:=?int64(100)
???initialAmount?:=?amount?*?100
???for?count?:=?int64(10);?count?>=?1;?count--?{
??????randomAmount?:=?algo.SimpleRandom(count,?initialAmount)
??????initialAmount?-=?randomAmount?//?初始金額減去已經(jīng)分配的金額
??????fmt.Printf("第%d個(gè)紅包的金額是%f\n",?count,?float64(randomAmount)?/?float64(100))
???}
}

使用這個(gè)測(cè)試用例,可以保證每個(gè)紅包的總和 等于 總金額。

http://img1.sycdn.imooc.com//5dfb82fd0001513c04610361.jpg


0 回復(fù) 有任何疑惑可以回復(fù)我~

發(fā)現(xiàn)總金額不對(duì),老師能幫忙看下嗎?1972,2370,5531,9900,5433,857,5400,7428,7838,4710,all: 51439

func?main()?{
???count,?amount?:=?int64(10),?int64(100)
???sum??:=?int64(0)
???for?i?:=?int64(0);?i?<?count;?i++?{
??????x?:=?algo.SimpleRand(count,?amount*100)
??????fmt.Print(x,",")
??????//fmt.Print(float64(x)/float64(100),?",")
??????sum?+=x
???}
???fmt.Println("all:",?sum)
???fmt.Println()
}


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

卡卡小獅子

可以參考下我的測(cè)試用例
2019-12-19 回復(fù) 有任何疑惑可以回復(fù)我~

如果不放在main中,可以隨機(jī)數(shù)種子增加一個(gè)再加上一個(gè)隨機(jī)就好啦

https://img1.sycdn.imooc.com//5d010f5600015b8d07060564.jpg

0 回復(fù) 有任何疑惑可以回復(fù)我~

已解決:

程序運(yùn)行的太快,UnixNano 生成的時(shí)間都是一樣的,從而導(dǎo)致 生成 rand 數(shù)值也是一樣的。

https://img1.sycdn.imooc.com//5c8f0c4800012bc702710083.jpg

解決辦法:

1,可以在 seed 設(shè)置完成以后 time.Sleep(1),情況會(huì)好很多。

https://img1.sycdn.imooc.com//5c8f0b5200017e9102240381.jpg

https://img1.sycdn.imooc.com//5c8f0b5200010e8b06980791.jpg

2,在 main 函數(shù)里 設(shè)置?

rand.Seed(time.Now().UnixNano())

讓它只運(yùn)行一次即可。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
3小時(shí)極簡(jiǎn)春節(jié)搶紅包之Go的實(shí)戰(zhàn)
  • 參與學(xué)習(xí)       12196    人
  • 解答問(wèn)題       32    個(gè)

【畢業(yè)設(shè)計(jì)】春節(jié)搶紅包業(yè)務(wù)資金交易秒殺系統(tǒng)的架構(gòu)設(shè)計(jì)和Golang實(shí)戰(zhàn)

進(jìn)入課程

已設(shè)置 rand 的種子,但輸出紅包金額相同

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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