A math/rand csomag támogatást nyújt pszeudovéletlen számok generálásához.
Így generálhatsz egy véletlen egész számot 0 és 99 között:
n := rand.Intn(100) // n is a random int, 0 <= n < 100
A rand.Float64 függvény egy véletlen lebegőpontos számot ad vissza 0.0 és 1.0 között:
f := rand.Float64() // f is a random float64, 0.0 <= f < 1.0
Arra is van lehetőség, hogy egy szeletet (vagy más adatszerkezetet) összekeverj:
x := []string{"a", "b", "c", "d", "e"}
// shuffling the slice put its elements into a random order
rand.Shuffle(len(x), func(i, j int) {
x[i], x[j] = x[j], x[i]
})
A math/rand csomag által generált számsorozatok nem valódi véletlen számok.
Egy adott „mag” érték esetén az eredmény teljesen determinisztikus.
A Go 1.20-as és újabb verzióiban a magot automatikusan, véletlenszerűen választja ki, így a program minden futtatásakor más véletlenszám-sorozatot kapsz.
A Go korábbi verzióiban a mag alapértelmezés szerint 1 volt.
Ezért ahhoz, hogy a program egyes futtatásainál különböző sorozatokat kapj, a véletlenszám-generátor magját kézzel kellett beállítanod, például az aktuális idővel, mielőtt bármilyen véletlen számot lekérnél.
rand.Seed(time.Now().UnixNano())
Elaine egy új gyerekjátékon dolgozik, amelyben állatok és varázspálcák szerepelnek. Itt az idő, hogy megírd a függvényeket a kockadobáshoz, a véletlenszerű pálcaenergia előállításához és egy szelet megkeveréséhez.
Valósítsd meg a RollADie függvényt.
Ez lesz a hagyományos húszoldalú kocka, 1-től 20-ig terjedő számokkal.
d := RollADie() // d will be assigned a random int, 1 <= d <= 20
Valósítsd meg a GenerateWandEnergy függvényt.
A pálcaenergia egy véletlenszerű lebegőpontos szám legyen, amely nagyobb vagy egyenlő, mint 0.0, és kisebb, mint 12.0.
f := GenerateWandEnergy() // f will be assigned a random float64, 0.0 <= f < 12.0
A játékban nyolc különböző állat szerepel:
Írj egy ShuffleAnimals függvényt, amely egy szeletet ad vissza a nyolc állattal véletlenszerű sorrendben.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.