91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何在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

黄冈市| 任丘市| 东乌珠穆沁旗| 晋州市| 和顺县| 鞍山市| 泗洪县| 阳高县| 库尔勒市| 年辖:市辖区| 仙游县| 神池县| 四会市| 信宜市| 墨玉县| 蓬莱市| 长宁县| 灵石县| 孝感市| 左贡县| 都匀市| 姜堰市| 宁德市| 布拖县| 阿瓦提县| 甘南县| 双柏县| 贡觉县| 石林| 嘉义县| 同德县| 阿勒泰市| 太仆寺旗| 三门县| 福建省| 五原县| 玛沁县| 开平市| 连江县| 大关县| 霍山县|