如何从Golang的一系列随机数中进行选择?
问题描述:
从我的代码下面我可以选择一组随机数0-4当(5)被选为参数的烫发。不过,我想选择不同范围的随机数,如6-10。我将如何能够做到这一点?如何从Golang的一系列随机数中进行选择?
r := rand.New(rand.NewSource(time.Now().UnixNano()))
i := r.Perm(5)
fmt.Printf("%v\n", i)
fmt.Printf("%d\n", i[0])
fmt.Printf("%d\n", i[1])
答
例如,
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
min, max := 6, 10
p := r.Perm(max - min + 1)
fmt.Println(p)
for i := range p {
p[i] += min
}
fmt.Println(p)
for _, r := range p {
fmt.Println(r)
}
}
输出:
[1 2 3 4 0]
[7 8 9 10 6]
7
8
9
10
6
答
func RandomInt(min int, max int) int {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
p := r.Perm(max - min + 1)
return p[min]
}
基于@peterSO提供
为了得到一个数字,这6高的答案,加6。 – hobbs