golang洗牌演算法實現

weixin_34107955發表於2018-06-01

額,其實是個很簡單的程式碼,只不過剛瞭解到,還是記錄一下吧
需要匯入的包有兩個,"math/rand"實現了洗牌演算法的函式,"time"包需要我們呼叫時間納秒數實現偽隨機數為洗牌演算法提供種子。描述不清楚的話可以參考文件(http://docs.studygolang.com/pkg/math/rand/#Seed

package main

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

func main() {
    rand.Seed(time.Now().UnixNano()) //設定種子

    sixah := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}

    rand.Shuffle(len(sixah), func(i, j int) { //呼叫演算法
        sixah[i], sixah[j] = sixah[j], sixah[i]
    })
    
    log.Println(sixah)
    return
}

相關文章