2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Остаток от деления в системе остаточных классов (СОК)
Сообщение24.01.2014, 16:39 
Аватара пользователя
Эге. Так. Кажется, до меня дошло. Мы говорили на разных языках. То есть у Вас число хранится в виде не самого числа, а остатков от его деления на 7, 11 и 13 (это условно; на самом деле этих простых у Вас гораздо больше и сами они гораздо больше, так что всё число в десятичной системе даже и выписать не получится), и вот с ним-то Вы и хотите эту штуку.
Ну-ну.
Мда.

-- менее минуты назад --

Такое представление, для начала, оперирует не с самими числами, а с классами остатков по модулю 1001. Поэтому кто из них больше, сказать нельзя. Сложению и умножению это не мешает, а вот делению с остатком - очень.

 
 
 
 Re: Остаток от деления в системе остаточных классов (СОК)
Сообщение24.01.2014, 16:50 
ИСН в сообщении #818713 писал(а):
Эге. Так. Кажется, до меня дошло. Мы говорили на разных языках. То есть у Вас число хранится в виде не самого числа, а остатков от его деления на 7, 11 и 13 (это условно; на самом деле этих простых у Вас гораздо больше и сами они гораздо больше, так что всё число в десятичной системе даже и выписать не получится), и вот с ним-то Вы и хотите эту штуку.

Для примера:

М=[31,37,41,43,47,53] = 5037203051 (произведение компонент)

Возьмём число a = 3286943, представим в виде вектора СОК с модулем M:
3286943 mod 31 = 13
3286943 mod 37 = 11
3286943 mod 41 = 14
3286943 mod 43 = 23
3286943 mod 47 = 45
3286943 mod 53 = 42
a = [13,11,14,23,45,42]

Если мне нужно умножить на b=67, то представим 67:
67 mod 31 = 5
67 mod 37 = 30
67 mod 41 = 26
67 mod 43 = 24
67 mod 47 = 20
67 mod 53 = 14
b = [5,30,26,24,20,14]

Теперь чтобы перемножить числа a и b надо перемножить
соответствующие компоненты векторов и взять остаток от
деления на компоненты модуля M:

13*5 mod 31 = 3
11*30 mod 37 = 34
14*26 mod 41 = 36
23*24 mod 43 = 36
45*20 mod 47 = 7
42*14 mod 53 = 5
результат: a*b = [3,34,36,36,7,5]

Как сконвертировать обратно в позиционную систему, не пишу.
В остальном всё просто.
А вот как разделить a на b (вернее получить остаток от этого деления)?


P.S. "ubik77 Наберите все формулы и термы TeX-ом?"
А где у меня формулы?

 
 
 
 Posted automatically
Сообщение24.01.2014, 17:03 
Аватара пользователя
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
Причина переноса: формулы не оформлены $\TeX$ом

ubik77
Наберите все формулы и термы $\TeX$ом.
Инструкции по оформлению формул здесь или здесь (или в этом видеоролике).
Программный код оформляйте тегом code, мелкие куски кода - тегом tt.
После исправлений сообщите в теме Сообщение в карантине исправлено, и тогда тема будет возвращена.

 
 
 [ Сообщений: 18 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group