К СЧ: различия между версиями
AtH (обсуждение | вклад) |
SMB (обсуждение | вклад) мНет описания правки |
||
Строка 20: | Строка 20: | ||
== Ссылки == | == Ссылки == | ||
* [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 Генератор псевдослучайных чисел на Википедии] | ||
* См. также [[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 КСЧ.