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



СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
История Demomakig'a - прошлое и будещее.
Система - Обзор новых системок: Sprite Maker v4.0, Turbo Copier v2.0, Sample Studio, Art Works 1, Burst Eyes v1.2, Excess Sample Editor v1.4.25, Excess Deluxe Paint v1.1, Graphic Station, BA v1.0, Global Commander v1.31, Quick Commander v2.3, Stall Spriter v0.1, AGA v1.0, Ultra Sonic v0.1, Universal Sprite Studio v1.0, HRUST v1.1, STORM v1.3.
History - SPbZXNet - part 2
MY CITY - Пятый посёлок. Ну чё тут сказать? Внатурe дeрeвня!
Солдатский юмор - 400 афоризмов и высказываний.

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