我试图产生一个随机数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