Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.98/818: Рейтинг темы: голосов - 818, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12

Операция mod()

29.05.2010, 01:44. Показов 166057. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, pls, как осуществить операцию m mod n (вычисление остатка) не используя операцию деления в процессе вычисления?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2010, 01:44
Ответы с готовыми решениями:

Нужно посчитать a^x * m mod p и b/(a^x) mod p
Нужно посчитать a^x * m mod p. Где a, x, m, p(простое число) - очень большие числа. И нужно посчитать b/(a^x) mod p. Программа типа ...

mod ^И
//----- остаток неправильный printf("%d %d",9%3,9&2); //0 0 printf("%d %d",1%3,1&2); //1 0 //----- в то же время следующее...

A^B mod C
Найти A^B mod C. Тут как-то надо использовать рекурсию. Кто может помочь?

26
31 / 30 / 19
Регистрация: 18.01.2010
Сообщений: 123
29.05.2010, 02:02
все просто
C++
1
m%n
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
29.05.2010, 17:52  [ТС]
Цитата Сообщение от Oleg462 Посмотреть сообщение
все просто
C++
1
m%n
Спасибо, конечно, но это естественно не подходит! мне надо как осуществляется операция вычисления остатка, причем для больших чисел и даже функция fmod не подходит.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
29.05.2010, 18:02
Ninasky, приведите пример входных данных и результата
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
29.05.2010, 20:13  [ТС]
Например: надо вычислить 144984 mod 26.
и именно делением в столбик, т.е.
1. 1<26
14<26
144 >26
C
1
2
3
4
5
6
7
b=144
while (b > 26)
{
b = b-26;
i++;//первое число частного, i = 5
//остается b = 14
}
2. b=14<26
149>26
C
1
2
3
4
5
6
7
b=149
while (b > 26)
{
b = b-26;
i++;//dnjhjt число частного, i = 5
//остается b = 19
}
3. b=19<26
198>26
C
1
2
3
4
5
6
while (b > 26)
{
b = b-26;
i++;//третье число частного, i = 7
//остается b = 16
}
4. b=16<26
164>26
C
1
2
3
4
5
while (b > 26)
{
b = b-26;
i++;//первое число частного, i = 6
//остается b = 8
5. b=8<26
но число закончилось, значит b=8 остаток
}


144976 mod 26 = 8 , это пример с маленькими числами, а надо с большими такое же осуществить
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
29.05.2010, 20:41
и чем не устраивает 144976 % 26
что такое "большие числа"
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
29.05.2010, 22:05  [ТС]
потому что мне надо раскрыть операцию вычисления остатка, большие числа, это 1024 бита как в RSA
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
29.05.2010, 22:22
Ninasky, Д. Кнут - Искусство Программирования, том 2
Вельшенбах - Криптография на Си и С++ в действии

читайте
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
29.05.2010, 22:35  [ТС]
Спасибо! знаю я что Кнут том 2(((
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
29.05.2010, 22:39
Цитата Сообщение от Ninasky Посмотреть сообщение
Спасибо! знаю я что Кнут том 2(((
а в чем же тогда проблема?
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
29.05.2010, 22:56  [ТС]
с программированием очень плохо, а времени разбираться нет(
думала мало ли кто уже такое делал, видимо не повезло
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
29.05.2010, 22:58
ну я делал это, как раз по тем двум книгам, просто выросло это в немного большее, чем просто функция... у меня тут целый класс написан... так что быстро разобраться тоже не получится
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
30.05.2010, 16:44  [ТС]
а очень надо...

Добавлено через 17 часов 12 минут
вообщем надо разработать защищенное вычисление m^e mod n.
m, e,n- защищено AN-кодом (закодированное m = A*m b и т.д.)
т.е. например есть 688^79 mod 3337 = 1570, а нужно (A = 29) 688*29^79*29 mod 3337*29 = 1570*29

кто поможет, спасибо большое!
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.05.2010, 16:46
так вам придется не только операцию взятия остатка от деления делать, а еще и модульное возведение в степень и умножение. и вы хотите быстро разобраться, учитывая ваш уровень знаний? вряд ли получится... хотя конечно дело тут больше в математике, чем в программировании... однако же, я могу только подсказать, полностью вряд ли вообще за просто так кто возьмется такой объем выполнять
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
30.05.2010, 17:07  [ТС]
с математикой проблем нет, а вот с программированием есть. Я так поняла надо искать программиста который будет за деньги это делать...
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.05.2010, 17:09
Цитата Сообщение от Ninasky Посмотреть сообщение
с математикой проблем нет, а вот с программированием есть
из программирования здесь надо знать как строится цикл for
Цитата Сообщение от Ninasky Посмотреть сообщение
Я так поняла надо искать программиста который будет за деньги это делать...
ну да... или же начинать самому, а с небольшими проблемами обращаться на форум
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
30.05.2010, 17:38  [ТС]
ок, спасибо
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
30.05.2010, 19:27
Цитата Сообщение от Ninasky Посмотреть сообщение
Подскажите, pls, как осуществить операцию m mod n (вычисление остатка) не используя операцию деления в процессе вычисления?
Небольшой вопрос. Это институтское задание или нужно реализовать деление на архитектуре, где аппаратное деление отсутствует? Если второе - то завтра с работы могу кинуть исходник, если первое - то не факт, что такой вариант устроит преподавателей (потому как скорее всего требуется некоторый конкретный алгоритм)
0
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
30.05.2010, 20:14  [ТС]
какой то определенный алгоритм не нужен.
Буду очень благодарна если скините!
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
30.05.2010, 20:23
Завтра скину, если не забуду

Добавлено через 7 минут
Совсем забыл, что оно уже есть на форуме
Реализация целочисленного беззнакового деления
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2010, 20:23
Помогаю со студенческими работами здесь

mod (на C)
нужно проверить число на нечётность я сделал так: if (k mod 2 == 1) &lt;действия&gt; но компилятор выдал ошибку типа:syntax error...

mod
Здравствуйте! У меня вопрос наверное глупый. Препод для выбора курсовой поставил следующие условия: Вариант задания выбирается по формуле...

Div и mod в С++
Здравствуйте. Перехожу из паскаля в c++. Есть отрывок кода который проверяет есть ли в числе N цифра 3 и есть ли в числе вводимое с...

DIv MOD в С++
не подскажете как описать оператор ДИВ в С++? суть такова а=5 b=2 x=a DIV 2 y=5/2 printf(...x) (y) мне нужно...

mod и div ??
Подскажите пожалуйста как будет mod и div в С++? Очень нужно)) Добавлено через 9 минут и пожалуйста напишите пример как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru