С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/242: Рейтинг темы: голосов - 242, средняя оценка - 4.72
Ninasky
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
1

Операция mod()

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

Подскажите, pls, как осуществить операцию m mod n (вычисление остатка) не используя операцию деления в процессе вычисления?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2010, 01:44
Ответы с готовыми решениями:

mod
Здравствуйте! У меня вопрос наверное глупый. Препод для выбора курсовой...

mod (на C)
нужно проверить число на нечётность я сделал так: if (k mod 2 == 1) ...

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

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

div и mod
Помогите, пожалуйста: вводимое с клавиатуры число n нужно разделить следующим...

26
Oleg462
31 / 30 / 19
Регистрация: 18.01.2010
Сообщений: 123
29.05.2010, 02:02 2
все просто
C++
1
m%n
0
Ninasky
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
29.05.2010, 17:52  [ТС] 3
Цитата Сообщение от Oleg462 Посмотреть сообщение
все просто
C++
1
m%n
Спасибо, конечно, но это естественно не подходит! мне надо как осуществляется операция вычисления остатка, причем для больших чисел и даже функция fmod не подходит.
0
M128K145
Эксперт JavaЭксперт С++
8327 / 3548 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
29.05.2010, 18:02 4
Ninasky, приведите пример входных данных и результата
0
Ninasky
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
29.05.2010, 20:13  [ТС] 5
Например: надо вычислить 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
Roma_F
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
29.05.2010, 20:41 6
и чем не устраивает 144976 % 26
что такое "большие числа"
0
Ninasky
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
29.05.2010, 22:05  [ТС] 7
потому что мне надо раскрыть операцию вычисления остатка, большие числа, это 1024 бита как в RSA
0
fasked
Эксперт С++
4984 / 2563 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
29.05.2010, 22:22 8
Ninasky, Д. Кнут - Искусство Программирования, том 2
Вельшенбах - Криптография на Си и С++ в действии

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

Добавлено через 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
Эксперт С++
4984 / 2563 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 16:46 14
так вам придется не только операцию взятия остатка от деления делать, а еще и модульное возведение в степень и умножение. и вы хотите быстро разобраться, учитывая ваш уровень знаний? вряд ли получится... хотя конечно дело тут больше в математике, чем в программировании... однако же, я могу только подсказать, полностью вряд ли вообще за просто так кто возьмется такой объем выполнять
0
Ninasky
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
30.05.2010, 17:07  [ТС] 15
с математикой проблем нет, а вот с программированием есть. Я так поняла надо искать программиста который будет за деньги это делать...
0
fasked
Эксперт С++
4984 / 2563 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 17:09 16
Цитата Сообщение от Ninasky Посмотреть сообщение
с математикой проблем нет, а вот с программированием есть
из программирования здесь надо знать как строится цикл for
Цитата Сообщение от Ninasky Посмотреть сообщение
Я так поняла надо искать программиста который будет за деньги это делать...
ну да... или же начинать самому, а с небольшими проблемами обращаться на форум
0
Ninasky
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
30.05.2010, 17:38  [ТС] 17
ок, спасибо
0
Evg
Эксперт CАвтор FAQ
19360 / 7209 / 538
Регистрация: 30.03.2009
Сообщений: 20,160
Записей в блоге: 30
30.05.2010, 19:27 18
Цитата Сообщение от Ninasky Посмотреть сообщение
Подскажите, pls, как осуществить операцию m mod n (вычисление остатка) не используя операцию деления в процессе вычисления?
Небольшой вопрос. Это институтское задание или нужно реализовать деление на архитектуре, где аппаратное деление отсутствует? Если второе - то завтра с работы могу кинуть исходник, если первое - то не факт, что такой вариант устроит преподавателей (потому как скорее всего требуется некоторый конкретный алгоритм)
0
Ninasky
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 12
30.05.2010, 20:14  [ТС] 19
какой то определенный алгоритм не нужен.
Буду очень благодарна если скините!
0
Evg
Эксперт CАвтор FAQ
19360 / 7209 / 538
Регистрация: 30.03.2009
Сообщений: 20,160
Записей в блоге: 30
30.05.2010, 20:23 20
Завтра скину, если не забуду

Добавлено через 7 минут
Совсем забыл, что оно уже есть на форуме
Реализация целочисленного беззнакового деления
0
30.05.2010, 20:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2010, 20:23

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

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

mod и div
вообщем задачка такая. Нужно вычислить сумму средних чисел четырёхзначного...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru