在 Go 语言中,生成随机整数可以使用 math/rand
包。以下是生成随机整数的几种常见方法:
- 生成一个指定范围内的随机整数: “`go package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
// 初始化随机数生成器
rand.Seed(time.Now().UnixNano())
// 生成一个 [min, max] 范围内的随机整数
min := 1
max := 10
randomInt := rand.Intn(max-min) + min
fmt.Println(randomInt)
}
2. **生成一个随机整数数组**:
```go
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
numbers := make([]int, 10) // 创建一个长度为10的整数数组
for i := range numbers {
numbers[i] = rand.Intn(100) // 假设我们想要生成0到99之间的随机数
}
fmt.Println(numbers)
}
- 生成一个随机布尔值: “`go package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
randomBool := rand.Intn(2) == 1 // 生成一个随机的布尔值,1为true,0为false
fmt.Println(randomBool)
}
4. **生成一个随机浮点数**:
```go
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
randomFloat := rand.Float64() // 生成一个[0.0, 1.0)范围内的随机浮点数
fmt.Println(randomFloat)
}
记住,每次调用 rand.Intn(n)
都会生成一个 [0, n)
范围内的随机整数。为了确保每次程序运行时生成的随机数不同,需要使用 rand.Seed()
函数初始化随机数生成器,通常使用当前时间的纳秒值作为种子。
如果你需要更高质量的随机数,可以考虑使用 crypto/rand
包,它提供了加密安全的随机数生成器。