Basic 1969 г.

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


Глава 11

Случайные числа

Краткое содержание: RANDOIIIZE, 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 + I NT (RND ♦ 6) будет давать числа 1, 2, 3, 4, 5, 6.

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

10 REM DICE TNRCWING PROGRAM (ВЫБРАСЫВАНИЕ КОСТИ)
20 CLS

30 FOR NB1 TO 2

40 PRINT 1 ♦ INT (RND*6);

SO NEXT N

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

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

20 FOR N«1 ТО 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.

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

Ниже приводится текст программы, моделирующей выбрасывание мо-
неты и подсчета числа выпадений 'орла' и 'решки'. (перевод имен
программы: HEADS-орлы, TAILS-решкн, COIN-монета)
10 LET HEADS*0: LET TAILS-0
20 LET COIN"INT (RND*2)
30 IF COIN-O THEN LET HEADS*HEvADS+1
40 IF COIN*1 THEN LET ТАILS*TAILS+1
50 PRINT HEADS; ', ': TAILS
60 IF TAILSO0 THEN PRINT HEADS/TAILS
70 PRINT: GO TO 20

Если программа выполняется достаточно долго, то отношение 'ор-
лов' к 'решкам' приблизительно равно 1.

Г А а в а 12



СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Реклама - Реклама и объявления.
Советы хаккеру - Методика адаптирования авторских программ под систему TR-DOS (Методика взлома ZX-Format 8, Mortal Kombat).
Открытые письма Nemo №8.3
ABOUT - О BBS с "анархическими" правилами.
Реклама - реклама и объявления.

В этот день...   20 апреля