Работа с 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.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Юмор - жизнь.
Железо - доработка любого спектрума до Пентагона.
Armagedon - Снова о конце света.
Обзор - анализ авторских программ распростронямых фирмой "Инфорком": STS v2.6, TASM 128 v3.0, FWORD FOR GENS v1.0, VIRUS 1-2, The Regeners.
Part 10 - A-Z Of Spectrum games reviews (part 3).

В этот день...   3 декабря