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

Функция rand.ExpFloat64

Функция rand.ExpFloat64 генерирует случайное число с экспоненциальным распределением со средним значением 1. Она возвращает число с плавающей точкой типа float64. В отличие от равномерного распределения, которое генерирует функции rand.Float64 и rand.Float32, экспоненциальное распределение генерирует значения, которые чаще бывают маленькими, но иногда могут быть очень большими. Функция не принимает никаких параметров и использует текущий генератор случайных чисел.

Синтаксис

rand.ExpFloat64()

Пример

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

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

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

"0.8543214567890123"

Пример

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

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

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

"0.2345678901234567" "1.3456789012345678" "0.0123456789012345" "2.4567890123456789" "0.5678901234567890" "0.7890123456789012" "3.4567890123456789" "0.1234567890123456" "1.2345678901234567" "0.4567890123456789"

Пример

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

package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) time := 0.0 for i := 0; i < 5; i++ { interval := rand.ExpFloat64() time += interval fmt.Printf("Event %d at time: %f\n", i+1, time) } }

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

"Event 1 at time: 0.854321" "Event 2 at time: 1.987654" "Event 3 at time: 2.123456" "Event 4 at time: 4.567890" "Event 5 at time: 5.012345"

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

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