亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

每次隨機金額都一樣

func?SimpleRand(count,?amount?int64)?int64?{
???//當紅包數量剩余一個的時候,就直接返回剩余金額
???if?count?==?1?{
??????return?amount
???}

???//計算最大可高度金額
???max?:=?amount?-?min*count
???rand.Seed(time.Now().UnixNano())
???x?:=?rand.Int63n(max)?+?min
???return?x
}

運行結果:650,650,650,650,650,650,650,650,650,650,

每個循環都是一樣的650,我用的是windows開發,難道是不支持

UnixNano()?這個函數嗎


正在回答

2 回答

var?seededRand?=?rand.New(rand.NewSource(time.Now().UnixNano()))

//windows可以將就用一下,注意:不是線程安全的..

0 回復 有任何疑惑可以回復我~

是windows是原因,windows系統15ms才會更新一次系統時間,循環的時候這些大概率都是在15ms之內發生的,所以每次都取到了這個種子的偽隨機數的第一個,一個可以參考的解決辦法是,把設置隨機數種子這行代碼,放到循環請求隨機函數前面,隨機數種子是全局的,只需保證每次進行隨機序列計算使用不同種子即可,不必每次隨機都用新的種子

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

每次隨機金額都一樣

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號