php隨機數(shù)
生成一個給定范圍的隨機數(shù),用 PHP 就太簡單不過了,而且可以指定從負數(shù)到正整數(shù)的范圍,如:
?php
echo mt_rand(-988, 888);
這樣就隨機生成 -988 到 888 的隨機數(shù)。
使用 Go 就要稍微麻煩一點。以下兩個函數(shù)分別是生成一個最大范圍內隨機整數(shù),和生成一個區(qū)間范圍的隨機整數(shù):
生成一個最大范圍內隨機數(shù)
一定要給一個時間戳的種子,否則每次生成都是一樣的值。這里就是生成 [0,100) 的隨機數(shù)。
func GenerateRandnum() int {
rand.Seed(time.Now().Unix())
randNum := rand.Intn(100)
return randNum
}
生成一個給定范圍的隨機數(shù)
這里實際上跟生成一個給定最大值內的隨機數(shù)一樣,只是有一個最大和最小范圍的處理。
func GenerateRangeNum(min, max int) int {
rand.Seed(time.Now().Unix())
randNum := rand.Intn(max - min) + min
return randNum
}
完整示例如下:
func main() {
GenerateRandnum()
GenerateRangeNum(888, 900)
}
package main
import (
"fmt"
"math/rand"
"time"
)
// GenerateRandnum 生成最大范圍內隨機數(shù)
func GenerateRandnum() int {
rand.Seed(time.Now().Unix())
randNum := rand.Intn(100)
fmt.Printf("rand is %v\n", randNum)
return randNum
}
// GenerateRangeNum 生成一個區(qū)間范圍的隨機數(shù)
func GenerateRangeNum(min, max int) int {
rand.Seed(time.Now().Unix())
randNum := rand.Intn(max - min)
randNum = randNum + min
fmt.Printf("rand is %v\n", randNum)
return randNum
}
func main() {
GenerateRandnum()
GenerateRangeNum(888, 900)
}
運行結果:
➜ examples git:(master) ✗ go run range.go
rand is 52
rand is 892
➜ examples git:(master) ✗ go run range.go
rand is 53
rand is 889
➜ examples git:(master) ✗ go run range.go
rand is 53
rand is 889
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- Go語言實現(xiàn)互斥鎖、隨機數(shù)、time、List
- GoLang 中的隨機數(shù)的示例代碼
- Go語言排序算法之插入排序與生成隨機數(shù)詳解
- Golang編程實現(xiàn)生成n個從a到b不重復隨機數(shù)的方法
- go語言返回1-99之間隨機數(shù)的方法
- Go語言生成隨機數(shù)的方法
- 在Go中創(chuàng)建隨機的安全密碼