5.28. Генерирование случайных чисел

5.28. Генерирование случайных чисел

Если вас устраивают псевдослучайные числа, вам повезло. Именно они предоставляются в большинстве языков, включая и Ruby.

Метод rand из модуля Kernel возвращает псевдослучайное число x с плавающей точкой, отвечающее условиям x >= 0.0 и x < 1.0. Например (вы можете получить совсем другое число):

a = rand # 0.6279091137

Если при вызове задается целочисленный параметр max, то возвращается целое число из диапазона 0...max (верхняя граница не включена). Например:

n = rand(10) # 7

Чтобы «затравить» генератор случайных чисел (задать начальное значение — seed), применяется метод srand из модуля Kernel, который принимает один числовой параметр. Если не передавать никакого значения, то метод srand самостоятельно изготовит затравку, учитывая (среди прочего) текущее время. Если же параметр передан, то именно он и становится затравкой. Это бывает полезно при тестировании, когда для воспроизводимости результатов многократно вызываемая программа должна получать одну и ту же последовательность псевдослучайных чисел.

srand(5)

i, j, k = rand(100), rand(100), rand(100)

# 26, 45, 56

srand(5)

l, m, n = rand(100), rand(100), rand(100)

# 26, 45, 56

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

НОВОСТИ: Цепь случайных совпадений?

Из книги Журнал «Компьютерра» № 6 от 14 февраля 2006 года автора Журнал «Компьютерра»

НОВОСТИ: Цепь случайных совпадений? Автор: Киви БердРазразившийся в Греции скандал вокруг перехвата сотовой связи ключевых политических фигур страны по своим масштабам, пожалуй, не знает себе равных не только в Европе, но и во всем мире. Вкратце суть произошедшего


Генерирование вторичных исключений

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

Генерирование вторичных исключений Вы должны знать, что в рамках логики try имеется возможность генерировать исключение для вызывающей стороны, находящейся выше по цепочке вызовов в стеке вызовов. Для этого просто используйте ключевое слово throw в рамках блока сatch. Тем


12.5.3. Генерирование сертификатов

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

12.5.3. Генерирование сертификатов Сертификат гарантирует безопасное подключение к Web-серверам и (или) удостоверяет личность владельца. Идентификация обеспечивается путем применения личного ключа, известного только пользователю данной системы. Когда пользователь


У11.9 Генерация случайных чисел

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

У11.9 Генерация случайных чисел Напишите класс, реализующий алгоритм получения псевдослучайных чисел, основанный на последовательности: ni = f(ni - 1), где функция f задана, а начальное значение n0 определяется клиентом класса. Функция не должна иметь побочных эффектов.


11.6. Генерация случайных чисел

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

11.6. Генерация случайных чисел ПроблемаТребуется сгенерировать несколько случайных чисел в формате с плавающей точкой в интервале значений [0.0, 1.0) при равномерном их распределении.РешениеСтандарт C++ предусматривает наличие C-функции библиотеки этапа исполнения rand,


16.10.3. Генерирование сертификатов

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.

16.10.3. Генерирование сертификатов Сертификат гарантирует безопасное подключение к веб-серверам и/или удостоверяет личность владельца. Идентификация обеспечивается путем применения личного ключа, известного только пользователю данной системы. Когда пользователь


Генерация случайных чисел

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Генерация случайных чисел Прежде всего, давайте опишем, что мы понимаем под случайным числом (random number). Без четкого определения термина мы будем неуверенно себя чувствовать при разработке и реализации генератора случайных чисел.Будет ли число 2 случайным числом? Просто


Выводы по алгоритмам генерации случайных чисел

Из книги Введение в криптографию автора Циммерманн Филипп

Выводы по алгоритмам генерации случайных чисел В предыдущем разделе были рассмотрены несколько достаточно простых генераторов случайных чисел. Наилучшие последовательности чисел позволяют получить два последних генератора, но, к сожалению, они выдвигают жесткие


Другие распределения случайных чисел

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Другие распределения случайных чисел Если случайные числа используются для моделирования некоторого процесса, то вы можете обнаружить, что все рассмотренные выше генераторы случайных чисел не позволяют решить поставленную задачу. Это вызвано равномерным


Пример 9-23. Генерация случайных чисел

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Пример 9-23. Генерация случайных чисел #!/bin/bash# $RANDOM возвращает различные случайные числа при каждом обращении к ней.# Диапазон изменения: 0 - 32767 (16-битовое целое со знаком).MAXCOUNT=10count=1echoecho "$MAXCOUNT случайных чисел:"echo "-----------------"while [ "$count" -le $MAXCOUNT ] # Генерация 10 ($MAXCOUNT) случайных


О случайных числах и сеансовых ключах

Из книги Разработка ядра Linux автора Лав Роберт

О случайных числах и сеансовых ключах Для генерации одноразовых симметричных сеансовых ключей PGP использует криптографически стойкий генератор псевдослучайных чисел (ГПСЧ)[11]. Если файл ПСЧ отсутствует, он автоматически создаётся и заполняется абсолютно произвольными


6.5.4. Устройства генерирования случайных чисел

Из книги автора

6.5.4. Устройства генерирования случайных чисел Специальные устройства /dev/random и /dev/urandom предоставляют доступ к средствам генерирования случайных чисел, встроенным в ядро Linux.Большинство аналогичных программных функций, например функция rand() стандартной библиотеки языка С,


Приложение Б Генератор случайных чисел ядра

Из книги автора

Приложение Б Генератор случайных чисел ядра В ядре Linux реализован генератор случайных чисел, который теоретически может генерировать истинно случайные числа. Генератор случайных чисел собирает в пул энтропии шумы внешней среды, которые поступают из драйверов