golang rand 输出随机数字
时间: 2023-08-05 19:25:20 浏览: 56
在 Golang 中,可以使用 `math/rand` 包来生成随机数。具体步骤如下:
1. 通过 `rand.Seed()` 函数设置种子值,以确保每次程序运行时生成的随机数序列都不同。可以使用当前时间戳或者其他随机值作为种子。
2. 使用 `rand.Intn(n)` 函数生成一个小于 n 的随机整数。例如,要生成 0 到 9 之间的随机整数,可以使用 `rand.Intn(10)` 函数。
下面是一个简单的示例程序,用于生成 0 到 9 之间的随机整数:
```go
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
// 设置种子值
rand.Seed(time.Now().UnixNano())
// 生成随机数
num := rand.Intn(10)
// 输出结果
fmt.Println(num)
}
```
注意,如果不设置种子值,每次运行程序生成的随机数序列都是一样的。因此,一定要设置种子值,以确保生成的随机数是真正的随机数。
相关问题
golang实现输出服务器使用情况
你可以使用golang的os包和runtime包来获取服务器的使用情况,例如:
```go
package main
import (
"fmt"
"os"
"runtime"
)
func main() {
// 获取操作系统类型
fmt.Println("操作系统类型:", runtime.GOOS)
// 获取CPU核心数
fmt.Println("CPU核心数:", runtime.NumCPU())
// 获取内存使用情况
var mem runtime.MemStats
runtime.ReadMemStats(&mem)
fmt.Printf("总内存:%v bytes,已分配内存:%v bytes,内存占用率:%f%%\n", mem.TotalAlloc, mem.Alloc, float64(mem.Alloc)/float64(mem.TotalAlloc)*100)
// 获取磁盘使用情况
fs := syscall.Statfs_t{}
err := syscall.Statfs("/", &fs)
if err != nil {
fmt.Println("获取磁盘使用情况失败:", err)
} else {
total := fs.Blocks * uint64(fs.Bsize)
free := fs.Bfree * uint64(fs.Bsize)
used := total - free
fmt.Printf("总磁盘空间:%v bytes,已用磁盘空间:%v bytes,可用磁盘空间:%v bytes\n", total, used, free)
}
}
```
上述代码可以输出操作系统类型、CPU核心数、内存使用情况和磁盘使用情况。注意,获取磁盘使用情况需要使用syscall包中的Statfs函数。
golang生成随机字符串
在 Golang 中,可以使用以下代码生成随机字符串:
```go
package main
import (
"math/rand"
"time"
)
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
func generateRandomString(length int) string {
rand.Seed(time.Now().UnixNano())
b := make([]byte, length)
for i := range b {
b[i] = charset[rand.Intn(len(charset))]
}
return string(b)
}
func main() {
randomString := generateRandomString(10)
println(randomString)
}
```
在上面的代码中,`generateRandomString` 函数使用 `rand.Intn` 函数从字符集 `charset` 中随机选择字符,然后将字符拼接成字符串并返回。`rand.Seed(time.Now().UnixNano())` 用于设置随机数种子,确保每次运行程序时生成的随机字符串都不同。
运行上述代码会生成一个长度为 10 的随机字符串并打印出来。你可以根据需要修改 `length` 参数来生成不同长度的随机字符串。