2016-02-12 71 views
0

從我的代碼下面我可以選擇一組隨機數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]) 
+0

爲了得到一個數字,這6高的答案,加6。 – hobbs

回答

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 
0
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提供

相關問題