我試圖產生一個隨機數beetwen最小值和最大值, ,但似乎我迷失了,這是什麼錯誤?生成密碼隨機整數beetwen最小值,最大值
package main
import (
"crypto/rand"
"encoding/binary"
"fmt"
)
func genRandNum(min, max int8) int {
var num int8
binary.Read(rand.Reader, binary.LittleEndian, &num)
return int(num*(max-min)+min)
}
func main() {
// trying to get a random number beetwen -10 and 10
fmt.Println(genRandNum(-10,10))
}
即使你有你的工作方式,它會在大多數情況下,使較低的值略微更加頻繁。 jmaloney使用的rand.Int函數是正確的方法;這是它的目的。看看[源文件](http://golang.org/src/pkg/crypto/rand/util.go?s=3072:3134#L96),看看它們是如何解決它的。 – ANisus 2014-10-02 05:36:24