К СЧ

Материал из ПМК вики
Версия от 06:42, 24 августа 2021; AtH (обсуждение | вклад) (→‎Советская реализация)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску
Команда К СЧ
 К   СЧ 
Код команды 3B
Русская мнемоника К СЧ
Латинская мнемоника K RAN
Группа команд загрузка чисел в стек
Число операндов нульместная
Нажимаемые клавиши  К   В↑ 
Число шагов 1
Признак перезаписи сбрасывается
Первое появление МК-61
Время выполнения ?
Скорость выполнения ? команд/с

Команда К СЧ (лат. K RAN) «Генерация случайного числа от 0 до 1» с кодом 3B записывает в регистр X очередное значение случайного числа с равномерным распределением в диапазоне от 0 до 1, включая значение 0, исключая 1. Стек поднимается, предыдущее значение регистра X также записывается в X1.

На МК-161 с прошивкой 1.20 (08.07.14) команда К СЧ выполняется за 2364,3 мкс (38,6 КНОП), 423 команды/с.

История[править]

Команда К СЧ впервые появилась в ПМК МК-61 и МК-52, где вызвала многочисленные нарекания владельцев. Она была существенно доработана в «Электронике МК-152», замеченные недочёты устранены.

Генератор случайных чисел К СЧ в советских ПМК имел слишком короткий период, и был склонен к зацикливанию в пределах одного-двух чисел при использовании в реальных программах. На результат его работы влияли другие команды, начинающиеся с клавиши  K , а также содержимое регистров памяти и стека. К примеру, команда K max с нулевыми аргументами вызывала повторение последовательности чисел с одного и того же значения 0,404067. Эта же последовательность выдавалась после включения питания. По данным разработчиков ПМК, сотрудников киевского ПО «Кристалл», в этом случае генератор выдавал 89 неповторяющихся чисел и далее зацикливался с периодом 145 чисел («Наука и жизнь», №6 - 1989г.). В связи с этим по прямому назначению команда практически не использовалась.

По мнению Л. Титова (Красноярск) («Наука и жизнь», №6 - 1989 г.) для генерации псевдослучайных чисел в советских ПМК использовано соотношение:

ξi+1 = {10(ξi + Y + X7)/3 + 0,404067},

где ξi+1 - очередное случайное число,
ξi - предыдущее случайное число,
Y - модифицированное содержимое регистра Y,
X7 - цифра, находящаяся в седьмом разряде регистра X.

В ЭКВМ применен генератор на основе регистра сдвига с периодом порядка нескольких миллионов случайных чисел. Последовательность не повторяется после выключения-включения питания, но может быть инициализирована и воспроизведена после обращения к специальной функции.

В советских ПМК при выполнении команды К СЧ происходит замещение содержимого регистра X, а в ЭКВМ подъём стека, что следует учитывать при переносе программ. При переносе программ МК-61 и МК-52 на ЭКВМ старую команду К СЧ часто можно заменить последовательностью FR КСЧ.

Советская реализация[править]

Из книги Я.К. Трохименко «Программируемые микрокалькуляторы. Устройство и пользование.» (стр. 125):

«К операторам набора чисел относятся … и СЧ для вызова квазислучайного числа с равномерным распределением в интервале (0,1). В связи с выбранным алгоритмом формирования квазислучайных чисел при некоторых сочетаниях операторов искомая последовательность таких чисел не образуется и приходится переставлять операторы или вводить дополнительные операторы после оператора СЧ.»

Ссылки[править]