亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在golang中用rand生成隨機不重復的數字

發布時間:2020-06-18 10:32:36 來源:億速云 閱讀:2066 作者:Leah 欄目:編程語言

如何在golang中用rand生成隨機不重復的數字?其實要解決這個問題也不難,這篇文章給出了相對應的分析和解答,下面我們一起來看看解決的方法。

在Golang中,有兩個包提供了rand,分別為 "math/rand" 和 "crypto/rand",  對應兩種應用場景。

一、"math/rand" 包實現了偽隨機數生成器。也就是生成 整形和浮點型。

二、”crypto/rand“ 包實現了用于加解密的更安全的隨機數生成器。

golang中使用rand產生隨機不重復數字:

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]

以上就是在golang中用rand生成隨機不重復數字的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漯河市| 宁南县| 卓尼县| 新建县| 左贡县| 大姚县| 禹州市| 西乌珠穆沁旗| 云梦县| 怀安县| 延边| 册亨县| 二连浩特市| 陇南市| 湖州市| 九龙坡区| 通州市| 龙泉市| 马关县| 辽宁省| 开封市| 绵竹市| 炉霍县| 汽车| 孟连| 牙克石市| 泰安市| 扬中市| 濮阳市| 孟州市| 大荔县| 巴彦县| 三江| 武鸣县| 石阡县| 修武县| 兰溪市| 中超| 社旗县| 阿图什市| 清远市|