Помогите найти инфу о сабже, конкретно интересует "конгруэнтный мультипликативный" алгоритм, кажется так называется
Google забанен?
http://www.adss.onu.edu.ua/language/14.htm
Добавлено через 3 мин.
здесь тоже есть:
http://lserv.deg.gubkin.ru/mod/lesson/view.php?id=136
"Толи он чегото попутал, толи я чего-то не понял, с тех пор Константин Кинчев покинул наши кассетные магнитофоны" (с)
У меня начальные данные:
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;
)))))))))))))))))))))))))))))))))
Ты путаешь математическое понятие остатка от деления с его реализацией в конкретном языке.
Смотри (с т.з. математики): у тебя 30 рублей, а мороженое стоит 7 рублей. Ты можешь купить 4 мороженых и 2 рубля - остаток.
У тебя 2р.30коп., а коробок спичек стоит 20 копеек. Можно ведь посчитать остаток (=сдачу) после покупки максимального колва коробков?
в данном конкретном случае рубли переводятся в копейки и все ок, НО !
http://slovari.yandex.ru/art.xml?art=gl_natural/245/245_186.HTM&encpage=gl_natural&mrkp=http%3A//hghltd.yandex.com/yandbtm%3Furl%3Dhttp%253A//encycl.yandex.ru/texts/gl_natural/245/245_186.HTM%26text%3D%25C4%25E5%25EB%25E5%25ED%25E8%25E5%2B%25EF%25EE%2B%25EC%25EE%25E4%25F3%25EB%25FE%26reqtext%3D%2528%25C4%25E5%25EB%25E5%25ED%25E8%25E5%253A%253A160170%2B%2526%2526/%2528-7%2B7%2529%2B%25EF%25EE%253A%253A0%2B%2526%2B%25EC%25EE%25E4%25F3%25EB%25FE%253A%253A10478%2529//6%26%26isu%3D2
Деление по модулю - арифметическая операция, результатом которой является остаток от деления целого числа на другое целое число.
function fmod(x, y: double): double;
begin
fmod := Frac(x/y) * y;
end;
begin
writeln(fmod(2.2 + 2.8, 70): 10: 5);
end.
Чтож спасибо, поюзаю эту формулу, но всеже первый контрольный вариант Как быть с ним ?
x0=0 - ошибка?
мне кажется, скорее специально подобранные данные. чтобы показать, насколько результат алгоритма зависит от начальных данных...
Все конечно возможно ... А если вернуться к определению этого метода, результатом должен быть набор чисел
x1, x2, ..., xN (- A, где A = {0, 1, 2, ...}
то есть целые числа ... возможно это не общее определение, но другого определения мне найти не удается.