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

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


== Ссылки ==
== Ссылки ==
* [http://mk.semico.ru/mk_d11.htm#p4 Команда '''К СЧ''' на сайте НПП «СЕМИКО», п. 4.3]
* [http://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB Генератор псевдослучайных чисел на Википедии]
* [http://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB Генератор псевдослучайных чисел на Википедии]
* [http://www.catb.org/~esr/jargon/html/R/random-numbers.html Random Numbers на The Jargon File]
* См. также [[R9046|регистр функций 9046]]
* См. также [[R9046|регистр функций 9046]]


[[Category:Все команды]]
[[Category:Все команды]]
[[Category:Команды ЭКВМ]]
[[Category:Команды ЭКВМ]]

Версия от 23:28, 25 января 2015

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

История

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

Генератор случайных чисел К СЧ в советских ПМК имел слишком короткий период, и был склонен к зацикливанию в пределах одного-двух чисел при использовании в реальных программах. На результат его работы влияли другие команды, начинающиеся с клавиши К, а также содержимое регистров памяти и стека. К примеру, команда 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 КСЧ.

Ссылки