如何在 Golang 中獲取整數的隨機排列?


整數的隨機排列是指隨機打亂的一系列整數。生成隨機排列是程式設計中的一項常見任務,Go 提供了一個內建的包用於生成整數的隨機排列。在本文中,我們將探討如何在 Go 中生成整數的隨機排列。

步驟 1:建立整數切片

在 Go 中生成整數隨機排列的第一步是建立一個整數切片。您可以使用 make 函式並指定切片的長度來建立一個整數切片。

slice := make([]int, length)

在此示例中,我們正在建立一個長度為 length 的整數切片。

步驟 2:用整數填充切片

建立整數切片後,您可以使用 for 迴圈按升序用整數填充它。

for i := 0; i < length; i++ {
   slice[i] = i
}

在此示例中,我們使用 for 迴圈用數字 0 到 length-1 填充整數切片。

步驟 3:打亂切片

要在 Go 中生成整數的隨機排列,您需要打亂整數切片。您可以使用 math/rand 包的 Shuffle 函式來打亂整數切片。

rand.Shuffle(length, func(i, j int) {
   slice[i], slice[j] = slice[j], slice[i]
})

在此示例中,我們使用 Shuffle 函式來打亂整數切片。

步驟 4:使用整數的隨機排列

最後,您可以根據需要在程式中使用生成的整數隨機排列。例如,您可以使用 fmt 包將其列印到控制檯。

fmt.Println(slice)

透過遵循這些簡單的步驟,您可以在 Go 中生成整數的隨機排列。

示例

package main

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

func main() {
   length := 10
   slice := make([]int, length)

   for i := 0; i < length; i++ {
      slice[i] = i
   }

   rand.Seed(time.Now().UnixNano())
   rand.Shuffle(length, func(i, j int) {
      slice[i], slice[j] = slice[j], slice[i]
   })

   fmt.Println(slice)
}

輸出

[7 9 8 0 2 3 6 4 5 1]

結論

在 Go 中生成整數的隨機排列是一個簡單的過程,只需幾行程式碼即可完成。透過遵循本文中概述的步驟,您可以在 Go 程式中生成任何所需長度的隨機排列。請記住,始終為隨機數生成器設定種子,以確保生成的數字是真正隨機且不可預測的。

更新於: 2023年5月8日

202 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告