Треки
/
Go
Go
/
Вправи
/
Магія тварин
Магія тварин

Магія тварин

Навчальна вправа

Вступ

Пакет math/rand надає підтримку для генерування псевдовипадкових чисел.

Ось як згенерувати випадкове ціле число від 0 до 99:

n := rand.Intn(100) // n is a random int, 0 <= n < 100

Функція rand.Float64 повертає випадкове число з плаваючою комою від 0.0 до 1.0:

f := rand.Float64() // f is a random float64, 0.0 <= f < 1.0

Є також підтримка перемішування масиву (та інших структур даних):

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]
})

Початкові значення

Послідовності чисел, які генерує пакет math/rand, не є справді випадковими. Якщо задати конкретне «початкове значення» (англ. seed), результати будуть повністю передбачуваними.

У Go 1.20+ початкове значення обирається випадково автоматично, тож під час кожного запуску програми ми бачитимемо іншу послідовність випадкових чисел.

У попередніх версіях Go початкове значення типово дорівнювало 1. Тому, щоб отримувати різні послідовності під час різних запусків програми, потрібно було вручну задати початкове значення для генератора випадкових чисел, наприклад, за поточним часом, перш ніж отримувати будь-які випадкові числа.

rand.Seed(time.Now().UnixNano())

Вказівки

Елейн працює над новою дитячою грою, у якій є тварини та чарівні палички. Настав час написати функції для кидання грального кубика, генерування випадкової енергії палички та перемішування зрізу.

1. Кидання грального кубика

Реалізуйте функцію RollADie.

Це буде традиційний двадцятигранний кубик із числами від 1 до 20.

d := RollADie() // d will be assigned a random int, 1 <= d <= 20

2. Генерування енергії палички

Реалізуйте функцію GenerateWandEnergy. Енергія палички має бути випадковим числом з плаваючою комою, більшим або рівним 0.0 і меншим за 12.0.

f := GenerateWandEnergy()  // f will be assigned a random float64, 0.0 <= f < 12.0

3. Перемішування зрізу

У грі є вісім різних тварин:

  • ant
  • beaver
  • cat
  • dog
  • elephant
  • fox
  • giraffe
  • hedgehog

Напишіть функцію ShuffleAnimals, яка повертає зріз із цими вісьмома тваринами у випадковому порядку.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Go Exercism

Час розпочати Магія тварин?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Go, а також 34 концепції165 вправ та справжнє наставництво від людей, і все це безкоштовно.