国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

Golang編程實現生成n個從a到b不重復隨機數的方法

2020-04-01 19:07:22
字體:
來源:轉載
供稿:網友

本文實例講述了Golang編程實現生成n個從a到b不重復隨機數的方法。分享給大家供大家參考,具體如下:

代碼很簡單:

復制代碼 代碼如下:
package test
import (
    "fmt"
    "math/rand"
    "time"
)
//生成若干個不重復的隨機數
func RandomTestBase() {
    //測試5次
    for i := 0; i < 5; i++ {
        nums := generateRandomNumber(10, 30, 10)
        fmt.Println(nums)
    }
}
//生成count個[start,end)結束的不重復的隨機數
func generateRandomNumber(start int, end int, count int) []int {
    //范圍檢查
    if end < start || (end-start) < count {
        return nil
    }
    //存放結果的slice
    nums := make([]int, 0)
    //隨機數生成器,加入時間戳保證每次生成的隨機數不一樣
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    for len(nums) < count {
        //生成隨機數
        num := r.Intn((end - start)) + start
        //查重
        exist := false
        for _, v := range nums {
            if v == num {
                exist = true
                break
            }
        }
        if !exist {
            nums = append(nums, num)
        }
    }
    return nums
}

 

輸出結果:

[12 20 18 19 21 28 15 13 11 10][28 15 12 10 20 18 16 24 27 17][25 28 29 19 21 12 16 13 11 15][27 20 19 23 18 13 21 24 12 26][19 10 27 18 28 12 22 14 16 26]

希望本文所述對大家Go語言程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 疏附县| 扎赉特旗| 枝江市| 民权县| 莎车县| 舞阳县| 上高县| 武夷山市| 辽宁省| 商南县| 海林市| 新郑市| 丰顺县| 图片| 霞浦县| 鹿泉市| 深水埗区| 玛多县| 游戏| 洪雅县| 石棉县| 东莞市| 石柱| 吴川市| 油尖旺区| 滕州市| 广南县| 滦平县| 霍山县| 淮阳县| 峨山| 兴隆县| 西乌珠穆沁旗| 博野县| 鄂尔多斯市| 全州县| 大理市| 五台县| 西昌市| 家居| 铁力市|