Heim >Backend-Entwicklung >Golang >Golang implementiert die Generierung sich nicht wiederholender Zufallszahlen

Golang implementiert die Generierung sich nicht wiederholender Zufallszahlen

王林
王林Original
2019-12-24 15:55:183786Durchsuche

Golang implementiert die Generierung sich nicht wiederholender Zufallszahlen

Das Codebeispiel lautet wie folgt:

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
}

Das Ausgabeergebnis ist wie in der Abbildung dargestellt:

Golang implementiert die Generierung sich nicht wiederholender Zufallszahlen

Empfohlene verwandte Artikel und Tutorials:Golang-Tutorial

Das obige ist der detaillierte Inhalt vonGolang implementiert die Generierung sich nicht wiederholender Zufallszahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn