




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第詳解Go語言中rand(隨機數)包的使用目錄包math/rand隨機數種子隨機函數rand.Int()rand.Intn(n)實例其他隨機函數按類型隨機類指定隨機范圍類偽隨機排列的切片生成標準正態分布生成標準指數分布
包math/rand
隨機數生成器,可以生成整型或浮點型的偽隨機數。
隨機數種子
不同的種子生成不同的隨機數,無種子編譯后運行的結果是定值。
通常以時鐘作為參數初始化,rand.Seed(time.Now().UnixNano())。
隨機函數
rand.Int()
返回一個隨機整數
packagemain
import(
"fmt"
"math/rand"
"time"
funcmain(){
nums:=make([]int,3)
rand.Seed(time.Now().UnixNano())
forj:=0;jj++{
fori:=0;ii++{
nums[i]=rand.Int()
fmt.Print(nums[i])
fmt.Print("\t")
fmt.Println()
輸出樣例:
854798378217766408230525529944468275578765581018699603124
536164981068888053872475556992300906266921521756094709862
706122549609831396140437877319303939444881510333544611431
274262349812316183288260614910642667717540769746514898360
16405622880174976027737908637884326151927535944994878966
739317758152588897865114691444795370975004275440415177087
8881638252506543942493468714956707648192005441386526629
5523554829668683712693129772586926696584352354533757392
312400723270531919656357272963430691584284023996891098234
38611421402590073784879978992907007455473741157600402359
rand.Intn(n)
返回0~n間不包括n的非負整數
packagemain
import(
"fmt"
"math/rand"
"time"
funcmain(){
nums:=make([]int,8)
rand.Seed(time.Now().UnixNano())
forj:=0;jj++{
fori:=0;ii++{
nums[i]=rand.Intn(100)
fmt.Print(nums[i])
fmt.Print("\t")
輸出樣例:
406334776782144
4340128794909768
047147142522072
8657786553777570
7626634057757782
8644625267460
5364703759414763
8038542147317
2624033493032
6890745140579297
注:rand.Intn(100)與rand.Int()%100效果相近。
實例
紅球1-33選擇6個不能重復;藍球1-16選擇1個;藍球和紅球可以重復
packagemain
import(
"fmt"
"math/rand"
"time"
funcmain(){
red:=make([]int,6)
rand.Seed(time.Now().UnixNano())
fori:=0;ilen(red);i++{
t:=rand.Intn(33)+1
forj:=0;jj++{
ift==red[j]{
t=rand.Intn(33)+1
red[i]=t
fmt.Println("紅球:",red,"\n藍球:",rand.Intn(16)+1)
輸出:
紅球:[252819263314]
藍球:7
其他隨機函數
按類型隨機類
func(r*Rand)Int31()int32
func(r*Rand)Int63()int64
func(r*Rand)Uint32()uint32
func(r*Rand)Float32()float32//返回一個取值范圍在[0.0,1.0)的偽隨機float32值
func(r*Rand)Float64()float64//返回一個取值范圍在[0.0,1.0)的偽隨機float64值
指定隨機范圍類
func(r*Rand)Int31n(nint32)int32
func(r*Rand)Int63n(nint64)int64
偽隨機排列的切片
返回一個有n個元素的,[0,n)范圍內整數的偽隨機排列的切片
fmt.Println(rand.Perm(10))//[3701924568]
生成標準正態分布
返回一個服從標準正態分布(標準差=1,期望=0)
取值范圍在[-math.MaxFloat64,+math.MaxFloat64]的float64值。
fmt.Println(rand.NormFloat64())
//生成不同的正態分布值
fmt.Println(rand.NormFloat64()*標準差+期望)
生成標準指數分布
返
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 省級中小學現代教育技術裝備標準實施指南
- 基于二進制分析的iOS應用漏洞動態行為研究-洞察及研究
- 微膿腫組織病理特征-洞察及研究
- 在役橋梁檢測與健康監測技術融合及診斷體系創新研究
- 權責清單管理暫行辦法
- 關鍵技術改進下的期盼
- 血液透析專業理論與實踐考核要點解析
- 安全生產三卡是指
- 生產安全事故調查處理報告
- 綠色金融估值體系-洞察及研究
- 企業數字化轉型服務協議
- 人工智能算法的倫理規制研究
- 變電所設備更換申請報告
- 學習2025年全國教育工作會議精神解讀
- 福建省寧德市2024-2025學年八年級上學期期末考試數學試題
- 初級中式面點師培訓教學大綱和教學計劃
- 銀行外包人員培訓課件
- 數控銑床編程與操作項目教程 第4版 課件 項目三 孔加工 任務四 鏜孔
- 《公路工程預算定額》(JTGT3832-2018)
- 純電動汽車高壓上電流程與故障分析
- 三方比價合同協議書范文范本
評論
0/150
提交評論