如何在Go語言中獲取Int31型別的隨機數?


隨機數生成是許多程式設計應用程式的重要功能。在Go語言中,您可以生成不同型別的隨機數,包括Int31。在本文中,我們將討論如何在Go語言中生成Int31型別的隨機數。

什麼是Int31型別?

Int31是Go語言中的一種資料型別,表示帶符號的32位整數。當您需要在-2147483648到2147483647範圍內生成隨機數時,Int31型別非常有用。

在Go語言中生成Int31型別的隨機數

要在Go語言中生成Int31型別的隨機數,您可以使用math/rand包中的rand.Int31()函式。此函式返回一個隨機的31位帶符號整數。

為了每次執行程式時生成不同的隨機數,您可以使用當前時間戳作為種子值:

rand.Seed(time.Now().UnixNano())

示例

這是一個示例程式碼片段:

package main

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

func main() {
   // Set the seed value for the random number generator
   rand.Seed(time.Now().UnixNano())

   // Generate a random Int31 type number
   randNum := rand.Int31()

   // Print the random number
   fmt.Println(randNum)
}

在這個例子中,我們首先使用rand.Seed()函式設定隨機數生成的種子值。這確保了生成的隨機數序列是確定性的且可重複的。

輸出

181769045

接下來,我們使用rand.Int31()函式生成一個Int31型別的隨機數,並將其賦值給randNum變數。最後,我們使用fmt.Println()函式列印隨機數。

更改生成的Int31型別數字的範圍

如果您想在一個特定範圍內生成Int31型別的隨機數,可以使用以下公式:

rand.Int31n(max - min + 1) + min

其中min和max分別是範圍的最小值和最大值。

示例

這是一個示例程式碼片段:

package main

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

)

func main() {
   // Set the seed value for the random number generator
   rand.Seed(time.Now().UnixNano())

   // Generate a random Int31 type number between -50 and 50
   randNum := rand.Int31n(50-(-50)+1) + (-50)

   // Print the random number
   fmt.Println(randNum)
}

在這個例子中,我們使用公式rand.Int31n(50-(-50)+1) + (-50)生成-50到50之間的Int31型別的隨機數。結果賦值給randNum變數,並使用fmt.Println()函式列印。

輸出

-4

結論

使用math/rand包中的rand.Int31()函式,在Go語言中生成Int31型別的隨機數很容易且直接。透過設定隨機數生成的種子值並使用適當的公式,我們可以生成特定範圍內的隨機數。有了這些知識,您現在可以將隨機數新增到您的Go語言應用程式中。

更新於:2023年5月8日

192 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告