Maison développement back-end Golang Comment générer des nombres aléatoires non répétitifs dans Golang

Comment générer des nombres aléatoires non répétitifs dans Golang

Dec 23, 2019 am 10:46 AM
随机数

Comment générer des nombres aléatoires non répétitifs dans Golang

Le package math/rand de Go fournit une API pour générer des nombres aléatoires. Les API importantes sont les suivantes :

// 该函数设置随机种子
// 若不调用此函数设置随机种子,则默认的种子值为1,由于随机算法是固定的,
// 如果每次都以1作为随机种子开始产生随机数,则结果都是一样的,因此一般
// 都需要调用此函数来设置随机种子,通常的做法是以当前时间作为随机种子
// 以保证每次随机种子都不同,从而产生的随机数也不通
// 该函数协程安全
func Seed(seed int64)

// 以下函数用来生成相应数据类型的随机数,带n的版本则生成[0,n)的随机数。
// 注意生成的随机数都是非负数
func Float32() float32
func Float64() float64
func Int() int
func Int31() int32  // 注意该函数只返回int32表示范围内的非负数,位数为31,因此该函数叫做Int31
func Int31n(n int32) int32
func Int63() int64
func Int63n(n int64) int64
func Intn(n int) int
func Uint32() uint32
func Uint64() uint64

// 另外,rand包还提供了一个类,接口和上面的大致相同:
type Rand struct {
    // ...
}

// 创建一个以seed为种子的源,注意该源不是协程安全的
func NewSource(seed int64) Source
// 以src为源创建随机对象
func New(src Source) *Rand
// 设置或重置种子,注意该函数不是协程安全的
func (r *Rand) Seed(seed int64)
// 下面的函数和全局版本的函数功能一样
func (r *Rand) Float32() float32
func (r *Rand) Float64() float64
func (r *Rand) Int() int
func (r *Rand) Int31() int32
func (r *Rand) Int31n(n int32) int32
func (r *Rand) Int63() int64
func (r *Rand) Int63n(n int64) int64
func (r *Rand) Intn(n int) int
func (r *Rand) Uint32() uint32
func (r *Rand) Uint64() uint64
Copier après la connexion

Lors de la génération de nombres aléatoires, il est préférable d'utiliser le. l'heure actuelle comme graine aléatoire. Un bon choix, vous pouvez utiliser le package time pour générer l'heure actuelle :

// 返回当前时间
func Now() Time

// 为了将Time类型转换为int64类型以作为随机种子
// 可以使用如下两个函数:

// 返回从1970年1月1日到t的秒数
func (t Time) Unix() int64
// 返回从1970年1月1日到t的纳秒数
func (t Time) UnixNano() int64
Copier après la connexion

Par exemple,

package main
import (
    "fmt"
    "math/rand"
    "time"
)
func main() {
    //
    // 全局函数
    //
    rand.Seed(time.Now().Unix())

    fmt.Println(rand.Int())       // int随机值,返回值为int
    fmt.Println(rand.Intn(100))   // [0,100)的随机值,返回值为int
    fmt.Println(rand.Int31())     // 31位int随机值,返回值为int32
    fmt.Println(rand.Int31n(100)) // [0,100)的随机值,返回值为int32
    fmt.Println(rand.Float32())   // 32位float随机值,返回值为float32
    fmt.Println(rand.Float64())   // 64位float随机值,返回值为float64

    // 如果要产生负数到正数的随机值,只需要将生成的随机数减去相应数值即可
    fmt.Println(rand.Intn(100) - 50) // [-50, 50)的随机值

    //
    // Rand对象
    //
    r := rand.New(rand.NewSource(time.Now().Unix()))

    fmt.Println(r.Int())       // int随机值,返回值为int
    fmt.Println(r.Intn(100))   // [0,100)的随机值,返回值为int
    fmt.Println(r.Int31())     // 31位int随机值,返回值为int32
    fmt.Println(r.Int31n(100)) // [0,100)的随机值,返回值为int32
    fmt.Println(r.Float32())   // 32位float随机值,返回值为float32
    fmt.Println(r.Float64())   // 64位float随机值,返回值为float64

    // 如果要产生负数到正数的随机值,只需要将生成的随机数减去相应数值即可
    fmt.Println(r.Intn(100) - 50) // [-50, 50)的随机值
}
Copier après la connexion
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment créer un générateur de nombres aléatoires dans Excel Comment créer un générateur de nombres aléatoires dans Excel Apr 14, 2023 am 09:46 AM

Comment utiliser RANDBETWEEN pour générer des nombres aléatoires dans Excel Si vous souhaitez générer des nombres aléatoires dans une plage spécifique, la fonction RANDBETWEEN est un moyen rapide et simple de le faire. Cela vous permet de générer des entiers aléatoires entre deux valeurs de votre choix. Générez des nombres aléatoires dans Excel à l'aide de RANDBETWEEN : cliquez sur la cellule où vous souhaitez que le premier nombre aléatoire apparaisse. Tapez =RANDBETWEEN(1,500) en remplaçant "1" par le nombre aléatoire le plus bas que vous souhaitez générer et "500" par

Méthode d'optimisation des performances de génération de nombres aléatoires Java Méthode d'optimisation des performances de génération de nombres aléatoires Java Jun 30, 2023 pm 12:25 PM

Comment optimiser les performances de génération de nombres aléatoires dans le développement Java Les nombres aléatoires sont largement utilisés en informatique, notamment dans la cryptographie, la simulation, les jeux et d'autres domaines. Dans le développement Java, nous devons souvent générer des nombres aléatoires pour répondre à divers besoins. Cependant, les performances de la génération de nombres aléatoires font souvent partie des préoccupations des développeurs. Cet article explorera comment optimiser les performances de génération de nombres aléatoires dans le développement Java. La classe ThreadLocalRandom a été introduite dans Java7 à l'aide de la classe ThreadLocalRandom

Comment générer des nombres aléatoires et des codes de vérification à l'aide de tableaux PHP Comment générer des nombres aléatoires et des codes de vérification à l'aide de tableaux PHP Jul 16, 2023 am 08:31 AM

Comment utiliser des tableaux PHP pour générer des nombres aléatoires et des codes de vérification Les nombres aléatoires et les codes de vérification sont très courants lors du développement de sites Web et d'applications. PHP propose diverses méthodes pour générer des nombres aléatoires et des codes de vérification. Cet article explique comment utiliser les tableaux PHP pour générer des nombres aléatoires et des codes de vérification, avec des exemples de code correspondants. 1. Générer des nombres aléatoires En PHP, nous pouvons utiliser la fonction rand() pour générer des nombres aléatoires. La fonction rand() nécessite deux paramètres, la valeur minimale et la valeur maximale. L'exemple de code est le suivant : $min=1;$max=

Générez des nombres aléatoires à l'aide de la fonction crypto/rand.Read de la documentation du langage Go Générez des nombres aléatoires à l'aide de la fonction crypto/rand.Read de la documentation du langage Go Nov 04, 2023 pm 03:39 PM

Générer des nombres aléatoires à l'aide du langage Go Le langage Go est un langage de programmation moderne, concis et efficace qui fournit de nombreuses bibliothèques intégrées pour générer des nombres aléatoires. Parmi eux, le package crypto/rand fournit une série de fonctions permettant de générer des nombres aléatoires sécurisés. Dans cet article, nous allons générer des nombres aléatoires en utilisant la fonction Read du package crypto/rand. Tout d’abord, nous devons importer le package crypto/rand et créer un tableau d’octets pour stocker les nombres aléatoires. L'exemple de code est le suivant : packagemain

Compréhension approfondie des méthodes et applications de génération de nombres aléatoires dans numpy Compréhension approfondie des méthodes et applications de génération de nombres aléatoires dans numpy Jan 03, 2024 am 08:23 AM

Explorez la méthode et l'application de NumPy pour générer des nombres aléatoires Introduction : Les nombres aléatoires sont largement utilisés en informatique et en statistiques, comme les expériences de simulation, la génération de données et la sélection de fonctionnalités. En Python, la bibliothèque NumPy (NumericalPython) est une puissante bibliothèque de calcul numérique qui fournit de nombreuses fonctions pour générer des nombres aléatoires. Cet article explorera la méthode de génération de nombres aléatoires dans NumPy et donnera des exemples de code spécifiques. 1. Fonction de génération de nombres aléatoires de NumPy fournie par NumPy

Comment utiliser la méthode Random.nextInt() pour générer des nombres aléatoires en Java ? Comment utiliser la méthode Random.nextInt() pour générer des nombres aléatoires en Java ? Nov 18, 2023 pm 03:44 PM

Comment utiliser la méthode Random.nextInt() pour générer des nombres aléatoires en Java ? Les nombres aléatoires sont largement utilisés en informatique et peuvent être utilisés pour générer des mots de passe, des événements aléatoires dans les jeux, un échantillonnage aléatoire en science des données, etc. Java fournit la classe Random pour générer des nombres aléatoires, et la méthode nextInt() peut être utilisée pour générer un entier aléatoire. Ci-dessous, je présenterai comment utiliser la méthode Random.nextInt() pour générer des nombres aléatoires et fournirai des exemples de code spécifiques. Premièrement, nous avons besoin

Comment éviter de générer des nombres aléatoires en double dans Golang ? Comment éviter de générer des nombres aléatoires en double dans Golang ? Jun 01, 2024 pm 04:46 PM

Comment éviter de générer des nombres aléatoires en double dans Golang : créez un nouveau générateur de nombres aléatoires rand.New (rand.Source). Utilisez rand.NewSource(time.Now().UnixNano()) comme source d'entropie. Utilisez rand.Intn(n) pour générer des entiers aléatoires.

Générez des nombres aléatoires à l'aide de la fonction Math.random() de Java Générez des nombres aléatoires à l'aide de la fonction Math.random() de Java Jul 24, 2023 am 08:45 AM

Utiliser la fonction Math.random() de Java pour générer des nombres aléatoires Les nombres aléatoires sont un concept très courant en programmation informatique et peuvent nous aider à implémenter diverses fonctions, telles que la génération de mots de passe aléatoires, des tirages de loterie, des événements aléatoires dans les jeux, etc. En Java, nous pouvons utiliser la fonction Math.random() pour générer des nombres aléatoires. La fonction Math.random() est une méthode statique de la bibliothèque standard Java. Elle renvoie un nombre aléatoire de type double supérieur ou égal à 0 et inférieur à 1. passer

See all articles