Go:获取一组唯一的随机数

时间:2014-08-30 13:52:04

标签: go

如何获得一组未在集合中重复的随机数?

去:

for i := 0; i < 10; i++ {
    v := rand.Intn(100)
    fmt.Println(v)
}

这有时给我两个或三个相同的数字。我希望他们所有人都不同。我该怎么做?

1 个答案:

答案 0 :(得分:12)

例如,

package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    rand.Seed(time.Now().UnixNano())
    p := rand.Perm(100)
    for _, r := range p[:10] {
        fmt.Println(r)
    }
}

输出:

87
75
89
74
17
32
56
44
36
0

游乐场:

http://play.golang.org/p/KfdCW3zO5K