К СЧ: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 35: Строка 35:


В советских [[ПМК]] при выполнении команды '''К СЧ''' происходит замещение содержимого [[RX|регистра X]], а в [[ЭКВМ]] [[Поднятие стека|подъём стек]]а, что следует учитывать при переносе программ.  При переносе программ [[МК-61]] и [[МК-52]] на [[ЭКВМ]] старую команду '''К СЧ''' часто можно заменить последовательностью [[FR]] '''КСЧ'''.
В советских [[ПМК]] при выполнении команды '''К СЧ''' происходит замещение содержимого [[RX|регистра X]], а в [[ЭКВМ]] [[Поднятие стека|подъём стек]]а, что следует учитывать при переносе программ.  При переносе программ [[МК-61]] и [[МК-52]] на [[ЭКВМ]] старую команду '''К СЧ''' часто можно заменить последовательностью [[FR]] '''КСЧ'''.
== Советская реализация ==
Из книги Я.К. Трохименко [[Программируемые микрокалькуляторы. Устройство и пользование. (книга)|«Программируемые микрокалькуляторы. Устройство и пользование.»]] (стр. 125):
«К операторам набора чисел относятся операторы набора десятичных цифр от 0 до 9 (обычно называемых литералами), десятичного разделительного знака (точки или запятой), изменения знака /——/, ввода порядка ВП, а также Ел для вызова числа л == 3,1415296 и СЧ для вызова квазислучайного числа с равномерным распределением в интервале (0,1). В связи с выбранным алгоритмом формирования квазислучайных чисел при некоторых сочетаниях операторов искомая последовательность таких чисел не образуется и приходится переставлять операторы или вводить дополнительные операторы после оператора СЧ.»


== Ссылки ==
== Ссылки ==

Версия от 06:40, 24 августа 2021

Команда К СЧ
 К   СЧ 
Код команды 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 до 9 (обычно называемых литералами), десятичного разделительного знака (точки или запятой), изменения знака /——/, ввода порядка ВП, а также Ел для вызова числа л == 3,1415296 и СЧ для вызова квазислучайного числа с равномерным распределением в интервале (0,1). В связи с выбранным алгоритмом формирования квазислучайных чисел при некоторых сочетаниях операторов искомая последовательность таких чисел не образуется и приходится переставлять операторы или вводить дополнительные операторы после оператора СЧ.»

Ссылки