Pour générer des nombres à virgule flottante aléatoires dans Golang, il existe deux méthodes courantes : utilisez le package math/rand et appelez rand.Float64() pour générer des nombres à virgule flottante dans la plage [0, 1). Utilisez le package crypto/rand pour générer un tableau d'octets aléatoires et le convertir en un nombre à virgule flottante, ce qui convient aux scénarios aléatoires sécurisés.
Il existe de nombreuses façons de générer des nombres à virgule flottante aléatoires dans Golang. Aujourd'hui, nous présenterons les deux méthodes les plus couramment utilisées.
Le package math/rand
fournit une variété de méthodes pour générer des nombres aléatoires, y compris la génération de nombres à virgule flottante aléatoires dans la plage [0, 1). Voici comment l'utiliser : math/rand
包提供了多种生成随机数的方法,包括生成 [0, 1) 范围内的随机浮点数。以下是如何使用它:
package main import ( "fmt" "math/rand" "time" ) func main() { // 设置随机数种子 rand.Seed(time.Now().UnixNano()) // 生成随机浮点数 randomFloat := rand.Float64() fmt.Println(randomFloat) // 输出:0.3456789012345678 }
rand.Float64()
会生成一个 [0, 1) 范围内的随机浮点数。
crypto/rand
包用于生成安全随机数,也非常适合生成随机浮点数。以下是它的使用方法:
package main import ( "crypto/rand" "encoding/binary" "fmt" ) func main() { // 生成随机字节数组 bytes := make([]byte, 8) _, err := rand.Read(bytes) if err != nil { panic(err) } // 将字节数组转换成浮点数 bits := binary.BigEndian.Uint64(bytes) randomFloat := float64(bits) / float64(1<<64) fmt.Println(randomFloat) // 输出:0.3456789012345678 }
crypto/rand.Read()
package main import ( "fmt" "math/rand" "time" ) func main() { // 设置随机数种子 rand.Seed(time.Now().UnixNano()) // 生成随机折扣(0.01 到 0.5) discount := 0.01 + rand.Float64() * 0.49 fmt.Println(discount) // 输出:0.23456789012345678 }
rand.Float64()
génère un nombre aléatoire à virgule flottante dans la plage [0, 1). Utiliser le package crypto/rand Le package crypto/rand
est utilisé pour générer des nombres aléatoires sécurisés et est également très approprié pour générer des nombres à virgule flottante aléatoires. Voici comment l'utiliser : rrreee
crypto/rand.Read()
génère un tableau d'octets aléatoires, que nous convertissons ensuite en flottant. 🎜🎜Cas pratique🎜🎜Supposons que nous ayons une application de commerce électronique qui doit générer des remises aléatoires. Nous pouvons utiliser le code suivant : 🎜rrreee🎜Ce code générera un nombre aléatoire à virgule flottante dans la plage [0,01, 0,5), qui pourra être utilisé comme une remise aléatoire. 🎜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!