Алгоритмы генерации ППСЧ |
Алгоритмы генерации ППСЧ |
klem4 |
Сообщение
#1
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Помогите найти инфу о сабже, конкретно интересует "конгруэнтный мультипликативный" алгоритм, кажется так называется
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#2
|
Гость |
Google забанен?
http://www.adss.onu.edu.ua/language/14.htm Добавлено через 3 мин. здесь тоже есть: http://lserv.deg.gubkin.ru/mod/lesson/view.php?id=136 |
klem4 |
Сообщение
#3
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
klem4 |
Сообщение
#4
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
"Толи он чегото попутал, толи я чего-то не понял, с тех пор Константин Кинчев покинул наши кассетные магнитофоны" (с)
У меня начальные данные: x0 = 0.11 A = 20 С = 2.8 k = 70 интересно, чему равно выражение (20 * 0.11 + 2.8) mod 70 ))))))))))))) Чем они там думаю когда тестовые задания пишут ... Ну или я туплю)) ps ну точнее 2.2 + 2.8 конечно же равно 5, но ! в любом случае это сумма чисел с плавающей точкой и никакой MOD тут не прокатит, ну а первый тестовый набор вообще решает ... x0 = 0 A = 5.2 C = 0 k = 5 даже если округлить A до целого (5), то ... x1 = (5 * 0 + 0) mod 5 = 0; x2 = (5 * 0 + 0) mod 5 = 0; ... xN = (5 * 0 + 0) mod 5 = 0; ))))))))))))))))))))))))))))))))) Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#5
|
Гость |
Цитата интересно, чему равно выражение (20 * 0.11 + 2.8) mod 70 5 mod 70 не знаешь нему будет равно? Выдыхай, klem, быстрее... А для дробных значений в Сях есть функция fmod, посмотри ее реализацию... |
klem4 |
Сообщение
#6
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата 5 mod 70 не знаешь нему будет равно? Выдыхай, klem, быстрее... smile.gif я по этому поводу ps добавил) Цитата А для дробных значений в Сях есть функция fmod, посмотри ее реализацию... Делать можно на чем угодно, вот пусть она мне на Паскале с такими исходными данными (2.2 + 2.8) mod 70 посчитает. Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
мисс_граффити |
Сообщение
#7
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Ты путаешь математическое понятие остатка от деления с его реализацией в конкретном языке.
Смотри (с т.з. математики): у тебя 30 рублей, а мороженое стоит 7 рублей. Ты можешь купить 4 мороженых и 2 рубля - остаток. У тебя 2р.30коп., а коробок спичек стоит 20 копеек. Можно ведь посчитать остаток (=сдачу) после покупки максимального колва коробков? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
klem4 |
Сообщение
#8
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
в данном конкретном случае рубли переводятся в копейки и все ок, НО !
http://slovari.yandex.ru/art.xml?art=gl_na.../6%26%26isu%3D2 Деление по модулю - арифметическая операция, результатом которой является остаток от деления целого числа на другое целое число. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#9
|
Гость |
Цитата вот пусть она мне на Паскале с такими исходными данными (2.2 + 2.8) mod 70 посчитает function fmod(x, y: double): double; Я ж не просто так сказал: посмотри, как реализовано, и перенеси на нужный тебе язык... Сообщение отредактировано: volvo - |
klem4 |
Сообщение
#10
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Чтож спасибо, поюзаю эту формулу, но всеже первый контрольный вариант Как быть с ним ?
Цитата x0 = 0 A = 5.2 C = 0 k = 5 Это несомненно ошибка. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
мисс_граффити |
Сообщение
#11
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
x0=0 - ошибка?
мне кажется, скорее специально подобранные данные. чтобы показать, насколько результат алгоритма зависит от начальных данных... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
klem4 |
Сообщение
#12
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Все конечно возможно ... А если вернуться к определению этого метода, результатом должен быть набор чисел
x1, x2, ..., xN (- A, где A = {0, 1, 2, ...} то есть целые числа ... возможно это не общее определение, но другого определения мне найти не удается. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Текстовая версия | 22.12.2024 10:34 |