Linux программирование в примерах
Шрифт:
Этот код явно патологический, но он предназначен для иллюстрации нашей мысли:
Таким образом, при наличии
В-шестых,
В-седьмых,
При наличии всех этих проблем вы должны строго рассмотреть дизайн своей программы. Если вам не нужно использовать
12.6. Псевдослучайные числа
Многим приложениям нужны последовательности случайных чисел. Например, игровые программы, имитирующие бросание костей, раздачу карт или вращение барабанов игровой машины, нуждаются в возможности случайного выбора одного из возможных значений. (Подумайте о программе
ЗАМЕЧАНИЕ. Природа случайности, генерация случайных чисел и их «качество» являются обширными темами, выходящими за рамки данной книги. Мы предоставляем введение в доступные функции API, но это все, что мы можем сделать Другие источники с более подробной информацией см в разделе 12.9 «Рекомендуемая литература»
Компьютеры по своему строению являются детерминистическими. Одно и то же вычисление с одними и теми же входными данными всегда должно давать одни и те же результаты. Соответственно, они не годятся для генерации истинно случайных чисел, то есть последовательностей чисел, в которых каждое число в последовательности полностью независимо от числа (или чисел), идущих перед ним. Вместо этого разновидности чисел, обычно используемых на программном уровне, называются псевдослучайными числами. То есть в любой данной последовательности номера выглядят независимыми друг от друга, но сама последовательность в целом повторяющаяся. (Эта повторяемость может быть ценным качеством; она обеспечивает детерминизм для программы в целом.)
Многие методы предоставления последовательностей псевдослучайных чисел работают посредством осуществления каждый раз одного и того же вычисления с начальным значением (seed). Сохраненное начальное значение затем обновляется для использования в следующий раз. API предоставляет способ указания нового начального значения. Каждое начальное значение дает одну и ту же последовательность псевдослучайных чисел, хотя различные начальные числа дают (должны давать) различные последовательности.
12.6.1. Стандартный С:
Стандартный С определяет две связанные функции для псевдослучайных чисел.
Следующая программа,
Поводыри на распутье
2. Анклавы
Фантастика:
киберпанк
рейтинг книги
Трилогия «Хроники Сиалы»
3. В одном томе
Фантастика:
фэнтези
рейтинг книги
Пятиозерье
Фантастика:
ужасы и мистика
рейтинг книги
Мир смерти
Шедевры фантастики
Фантастика:
боевая фантастика
космическая фантастика
рейтинг книги
Дважды одаренный. Том VIII
8. Дважды одаренный
Фантастика:
боевая фантастика
альтернативная история
аниме
попаданцы
рейтинг книги
Ржавый Рыцарь и Пистолетов
Любовные романы:
остросюжетные любовные романы
рейтинг книги
Симфонии
Поэзия:
поэзия
рейтинг книги
Сатанизм для интеллигенции
Научно-образовательная:
религиоведение
рейтинг книги
Гаран вечный (сборник)
Фантастика:
научная фантастика
рейтинг книги
Источник
Проза:
современная проза
рейтинг книги