РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
342 of 1593 menu

Функция rand.NormFloat64

Функция rand.NormFloat64 генерирует случайное число с нормальным распределением (также известным как распределение Гаусса). Она не принимает никаких параметров и возвращает значение типа float64. Генерируемые числа имеют среднее значение 0 и стандартное отклонение 1. Это означает, что большинство значений будут находиться в диапазоне от -3 до 3, при этом значения, близкие к 0, встречаются чаще, чем значения, удаленные от нуля.

Синтаксис

rand.NormFloat64()

Пример

Давайте сгенерируем одно случайное число с нормальным распределением:

package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) res := rand.NormFloat64() fmt.Println(res) }

Результат выполнения кода:

"0.3854712856178512"

Пример

Давайте сгенерируем несколько случайных чисел с нормальным распределением и посмотрим на их распределение:

package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) for i := 0; i < 10; i++ { res := rand.NormFloat64() fmt.Println(res) } }

Результат выполнения кода:

"0.3854712856178512" "-0.24657302191144077" "1.2458615230453457" "-0.5678123456789012" "0.9234567890123456" "-1.2345678901234567" "0.4567890123456789" "-0.7890123456789012" "1.567890123456789" "-0.3456789012345678"

Пример

Давайте используем rand.NormFloat64 для моделирования нормально распределенных значений с определенным средним и стандартным отклонением. Для этого мы умножаем результат на желаемое стандартное отклонение и прибавляем желаемое среднее:

package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) mean := 100.0 stddev := 15.0 for i := 0; i < 5; i++ { res := mean + stddev*rand.NormFloat64() fmt.Println(res) } }

Результат выполнения кода:

"105.45678901234567" "98.34567890123456" "112.56789012345678" "95.67890123456789" "102.34567890123456"

Смотрите также

  • функцию rand.Float64,
    которая генерирует равномерно распределенное число в диапазоне [0, 1)
  • функцию rand.ExpFloat64,
    которая генерирует число с экспоненциальным распределением
  • функцию rand.Intn,
    которая генерирует случайное целое число в диапазоне [0, n)
  • функцию rand.Perm,
    которая возвращает случайную перестановку чисел из диапазона [0, n)
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить