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