Работа с ZX-Spectrum 1993 г.

Глава 11 - случайные числа.


ГЛАВА 11

СЛУЧАЙНЫЕ ЧИСЛА

Краткое содержание: RANDOMIZE, RND.

В этой главе описывается функция RND и ключевое слово RANDOMIZE.
Их не надо путать, хотя они обе расположены на клавише "Т". Для
RANDOMIZE допустимо сокращение RAND.

При обращении к функции RND, она возвращает случайное число в
интервале от 0 до 1 (может принимать значение 0, но никогда 1). Попробуй-
те выполнить:

10 PRINT RND
20 GO ТО 10
Вы увидите как меняется результат.

Фактически RND не абсолютно случайное число, а выбирается из опре-
деленной последовательности длиной в 65536 чисел, поэтому обычно гово-
рят, что RND - псевдослучайное число.

Для получения случайного числа в интервале, отличном от 0...1 можно
использовать выражения, например:

1.3 + 0.7 * RND даст интервал от 1.3 до 2.

Для получения случайных целых чисел используйте функцию INT (округ-
ляет с отбрасыванием дробной части). Например:

1 + INT (RND * 6) будет давать числа 1,2,3, 4, 5,

6.

Пусть имеется программа:

10 REM *DICE THROWING PROGRAM* (выбрасывание кости)
20 CLS

30 FOR N-l TO 2

40 PRINT 1+INT(RND *6);" ";

50 NEXT N

60 INPUT A$: GO TO 20
Нажимая ENTER, Вы каждый раз будете получать номер, выпавший на
кости.

Утверждение RANDOMIZE используется для установления начала пос-
ледовательности случайных чисел для функции RND. Как можно увидеть из
программы:

10 RANDOMIZE 1

20 FOR N-l ТО 5: PRINT RND,: NEXT N
30 PRINT : GO TO 10
После каждого выполнения RANDOMIZE 1 случайная последователь-
ность будет начинаться с числа 0.0022735596. В утверждении RANDOMIZE
Вы можете использовать любые числа в интервале от 1 до 65535. Нельзя
использовать RANDOMIZE без числа, а также RANDOMIZE 0. Например,
имеется программа:

10 RANDOMIZE
20 PRINT RND: GO TO 10
В каждой итерации будет печататься не случайное число. Для улуч-
шения случайности распределения можно заменить GO ТО 10 на GO ТО 20.
Примечание: Большинство версий BASIC'a используют RND и RANDOMIZE
для генерации случайных чисел, но это не единственное их применение.

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

(перевод имен программы: HEADS - орлы, TAILS - решки, COIN - моне-
та)

10 LET HEADS-O: LET TAILS=0
20 LET COIN-INT (RND *2)
30 IF C0IN=0 THEN LET HEADS-HEADS+l
40 IF COIN-1 THEN LET TAILS-TAILS+l
50 PRINT HEADS;",";TAILS
60 IF TAILSO THEN PRINT HEADS/TAILS;
70 PRTNT : GO TO 20
Если программа выполняется достаточно долго, то отношение "орлов" к
"решкам" приблизительно равно 1.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
В помощь - Еще несколько слов о дисководах 5'25 и 3'5.
Слово авторов - Полтора месяца спустя...
Party - подробный отчет Striker'a о поездке на питерский компьютерный фестиваль Сhaos Constructions 2006.
Вступление - Вот и пришло время третьей в истории GOMEL ZX-NET тусовки.
Others - Результаты анкетирования.

В этот день...   21 ноября