IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Алгоритмы генерации ППСЧ
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Помогите найти инфу о сабже, конкретно интересует "конгруэнтный мультипликативный" алгоритм, кажется так называется unsure.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Google забанен? smile.gif

http://www.adss.onu.edu.ua/language/14.htm

Добавлено через 3 мин.
здесь тоже есть:
http://lserv.deg.gubkin.ru/mod/lesson/view.php?id=136
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Google забанен?

Гугл решает))))

Прикрепленное изображение



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


"Толи он чегото попутал, толи я чего-то не понял, с тех пор Константин Кинчев покинул наши кассетные магнитофоны" (с)

У меня начальные данные:

x0 = 0.11
A = 20
С = 2.8
k = 70

интересно, чему равно выражение

(20 * 0.11 + 2.8) mod 70 smile.gif)))))))))))))

Чем они там думаю когда тестовые задания пишут ... Ну или я туплю))

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;

smile.gif)))))))))))))))))))))))))))))))))

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
интересно, чему равно выражение

(20 * 0.11 + 2.8) mod 70
blink.gif

5 mod 70 не знаешь нему будет равно? Выдыхай, klem, быстрее... smile.gif

А для дробных значений в Сях есть функция fmod, посмотри ее реализацию...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Ты путаешь математическое понятие остатка от деления с его реализацией в конкретном языке.
Смотри (с т.з. математики): у тебя 30 рублей, а мороженое стоит 7 рублей. Ты можешь купить 4 мороженых и 2 рубля - остаток.
У тебя 2р.30коп., а коробок спичек стоит 20 копеек. Можно ведь посчитать остаток (=сдачу) после покупки максимального колва коробков?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
вот пусть она мне на Паскале с такими исходными данными (2.2 + 2.8) mod 70 посчитает

function fmod(x, y: double): double;
begin
fmod := Frac(x/y) * y;
end;

begin
writeln(fmod(2.2 + 2.8, 70): 10: 5);
end.


Я ж не просто так сказал: посмотри, как реализовано, и перенеси на нужный тебе язык...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Чтож спасибо, поюзаю эту формулу, но всеже первый контрольный вариант smile.gif Как быть с ним ?

Цитата
x0 = 0
A = 5.2
C = 0
k = 5


Это несомненно ошибка.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


x0=0 - ошибка?
мне кажется, скорее специально подобранные данные. чтобы показать, насколько результат алгоритма зависит от начальных данных...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.09.2020 6:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name