Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon d'utiliser le package Rand dans Golang

Explication détaillée de la façon d'utiliser le package Rand dans Golang

PHPz
PHPzoriginal
2023-04-06 09:12:401752parcourir

Go est un langage de programmation open source développé par Google. Les caractéristiques du langage Go sont la simplicité, la rapidité, la sécurité et la concurrence. Go possède une bibliothèque standard très populaire qui comprend de nombreuses fonctions puissantes et utiles. L’une d’elles est la fonction du package rand, qui est utilisée pour générer des nombres pseudo-aléatoires. Le package

rand fournit certaines fonctions qui peuvent générer des nombres aléatoires. Ces fonctions sont des générateurs de nombres pseudo-aléatoires, ce qui signifie qu'elles génèrent une séquence de nombres qui semble aléatoire mais qui est en réalité générée par un nombre de départ. L’utilisation du même numéro de départ entraînera la même séquence de nombres pseudo-aléatoires. Par conséquent, lorsque nous devons garantir que les nombres aléatoires générés sont imprévisibles et répondent à des exigences de sécurité plus élevées, nous devons utiliser des algorithmes de génération de nombres aléatoires plus complexes.

Les fonctions les plus couramment utilisées dans le package rand sont Int, Intn et Float64. Ce qui suit explique comment les utiliser.

1. Int

La fonction Int renvoie un entier aléatoire non négatif compris dans la plage [int64). Voici l'utilisation de la fonction Int :

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    // 产生一个随机整数
    var num int64 = rand.Int63()

    fmt.Println(num)
}

Dans le code ci-dessus, nous importons d'abord les packages "rand" et "fmt", qui sont utilisés pour générer des nombres aléatoires et afficher les résultats sur la console respectivement. Ensuite, nous appelons la fonction rand.Int63(), qui renverra un entier aléatoire de 32 bits ou 64 bits. Notez que le numéro de départ utilisé ici est l'heure du système, donc les nombres aléatoires générés sont différents à chaque fois.

2. Intn

La fonction Intn renvoie un entier aléatoire non négatif compris dans la plage [0, n). Voici l'utilisation de la fonction Intn :

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    // 产生一个0-100的随机整数
    num := rand.Intn(100)

    fmt.Println(num)
}

Dans le code ci-dessus, nous appelons la fonction rand.Intn(100), qui renverra un entier supérieur ou égal à 0 et inférieur à 100.

3. Float64

La fonction Float64 renvoie un nombre à virgule flottante aléatoire compris dans la plage [0.0, 1.0). Voici l'utilisation de la fonction Float64 :

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    // 产生一个随机浮点数
    num := rand.Float64()

    fmt.Println(num)
}

Dans le code ci-dessus, nous appelons la fonction rand.Float64(), qui renverra un nombre aléatoire à virgule flottante supérieur ou égal à 0 et inférieur à 1.

En plus des fonctions couramment utilisées ci-dessus, le package rand fournit également d'autres fonctions, telles que :

  • Int31 : renvoie un entier aléatoire non négatif dans la plage de [int32).
  • Int63n : renvoie un entier aléatoire non négatif compris dans la plage [0,n).
  • Perm : renvoie une séquence entière de [0,n) dans un ordre aléatoire.
  • Shuffle : mélangez un tableau de longueur variable dans un ordre aléatoire.

Résumé : Le package rand fournit des fonctions simples et pratiques qui peuvent fournir une certaine aide pour générer des nombres aléatoires. Mais il convient de noter que même si les nombres aléatoires générés dans le package Rand semblent aléatoires, ce ne sont pas en réalité des nombres véritablement aléatoires. Par conséquent, lorsqu’il est nécessaire de garantir que les nombres aléatoires générés sont imprévisibles et répondent à des exigences de sécurité plus élevées, un algorithme de génération de nombres aléatoires plus complexe doit être utilisé.

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:
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