Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/20: Рейтинг темы: голосов - 20, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 3
1

Cравнения первого степеня вида ax=b(mod m)

09.12.2010, 02:28. Просмотров 3950. Ответов 1
Метки нет (Все метки)

Помогите решить сравнения первого степеня вида ax=b(mod m) и написать программу, решаюшую такие уравнения на C++.

Пример: 2х=5(mod 3). Остаток m -> [0], [1], [2].
x1=0 -> 2*0-5/3=-5/3 не принадлежит Z. Следовательно, x1=0 не есть решением.
x2=1 -> 2*1-5/3=-1 принадлежит Z. Следовательно, x2=1 есть решением.
x3=2 -> 2*2-5/3=-1/3 не принадлежит Z. Следовательно, x3=2 не есть решением.

Это примерный алгоритм решения для простых уравнений. Если имеются уравнения вида: 124х=72(mod 152), то вручную перебирать их затруднительно, нужно, чтобы это делала программа. Пожалуйста, обьясните коды доступно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2010, 02:28
Ответы с готовыми решениями:

Построить три вида фигуры. На месте вида спереди и вида слева совместить часть вида с частью разреза

Построить три вида фигуры. На месте вида спереди и вида слева совместить часть вида с частью разреза - AutoCAD
Меня уже совсем выносит. Правильно ли я делаю?.. Не могу представить нормально вид слева. Что делаю...

Обчислити значення суми до 50 степеня включно:

вычислить A:= 4*7 mod 5 div 2/3 - trunc(0.724) B:= Abs (round (5/2)-7 div 15+8 mod 9)
A:= 4*7 mod 5 div 2/3 - trunc(0.724) B:= Abs (round (5/2)-7 div 15+8 mod 9)

1
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 3
14.12.2010, 00:34  [ТС] 2
хм, господа, в чем дело?
мне нужно не решение этих производных, а именно программа. Может, не там тему подняла? Если да, то переместите пожалуйста.
Алгоритм решения сравнений первой степени https://www.cyberforum.ru/cgi-bin/latex.cgi?ax\equiv b\left(mod m \right):
Возьмем для примера https://www.cyberforum.ru/cgi-bin/latex.cgi?124x\equiv 72\left(mod 152 \right)
1. Найдем НОД https://www.cyberforum.ru/cgi-bin/latex.cgi?\left(a,m \right)=d с помощью алгоритма Евклида:
а) Если https://www.cyberforum.ru/cgi-bin/latex.cgi?m>a, то:
https://www.cyberforum.ru/cgi-bin/latex.cgi?m=aq_0+r_1;<br />
a=r_1q_1+r_2;<br />
r_1=r_2q_2+r_3;<br />
...<br />
r_n-1=r_nq_n.
б) Если https://www.cyberforum.ru/cgi-bin/latex.cgi?m<a, то:
https://www.cyberforum.ru/cgi-bin/latex.cgi?a=mq_0+r_1;<br />
m=r_1q_1+r_2;<br />
r_1=r_2q_2+r_3;<br />
...<br />
r_n-1=r_nq_n.
Тогда наибольший общий делитель https://www.cyberforum.ru/cgi-bin/latex.cgi?d=r_n.
2. Далее рассматриваются два случая:
а) Если https://www.cyberforum.ru/cgi-bin/latex.cgi?b не кратно https://www.cyberforum.ru/cgi-bin/latex.cgi?d, то у сравнения нет решения.
б) Если https://www.cyberforum.ru/cgi-bin/latex.cgi?b кратно https://www.cyberforum.ru/cgi-bin/latex.cgi?d, то у сравнения есть ровно https://www.cyberforum.ru/cgi-bin/latex.cgi?d решений.
3. Сокращаем уравнение на https://www.cyberforum.ru/cgi-bin/latex.cgi?d: https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{a}{d}x=\frac{b}{d}\left(mod \frac{m}{d} \right) так, чтобы https://www.cyberforum.ru/cgi-bin/latex.cgi?a и https://www.cyberforum.ru/cgi-bin/latex.cgi?m стали взаимно простыми числами https://www.cyberforum.ru/cgi-bin/latex.cgi?\left(\frac{a}{d}, \frac{m}{d} \right)=1
4. Снова используем алгоритм Евклида для https://www.cyberforum.ru/cgi-bin/latex.cgi?\left(a_1, m_1 \right)=1:
Тоже самое, что и в 1.а)\1.б)
5. Таблица для нахождения числителей подходящих дробей:
a) Если https://www.cyberforum.ru/cgi-bin/latex.cgi?m>a, то:
_____________________________________________
|Q_n:| 0 | q_0 | q_1 | ... | q_n |
|____|___|_____|__________|___|_______________|
|P_n:| 1 | q_0 | q_0q_1+1 | ... | p_n-1q_n+p_n-2 |
|____|___|_____|__________|___|_______________|
б) Если https://www.cyberforum.ru/cgi-bin/latex.cgi?m<a, то:
____________________________________________________________ ___
|Q_n:| 0 | 0 | q_0 | q_1 | q_2 | ... | q_n |
|____|___|___|_____|__________|__________|_____|____________ ____|
|P_n:| 1 | 0 | 1 | q_1 | q_1q_2+1 | ... | p_n-1q_n+p_n-2 |
|____|___|___|_____|__________|__________|_____|____________ ____|
6. И наконец, https://www.cyberforum.ru/cgi-bin/latex.cgi?x\equiv {\left(-1 \right)}^{n-1}b{P}_{n-1}\left(mod m \right).
Причем значение икса не должно перевышать https://www.cyberforum.ru/cgi-bin/latex.cgi?0<x<m-1.
Если https://www.cyberforum.ru/cgi-bin/latex.cgi?x\neq [0,m-1], то к значению https://www.cyberforum.ru/cgi-bin/latex.cgi?x прибавляем https://www.cyberforum.ru/cgi-bin/latex.cgi?m_1 до тех пор, пока https://www.cyberforum.ru/cgi-bin/latex.cgi?x=[0,m_1] .
Вот собсно, и все
ЗЫ: извиняюсь за ужасную таблицу
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2010, 00:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

1.Докажите, что если a ≡ b (mod n) и c ≡ d (mod n), то:
1.Докажите, что если a ≡ b (mod n) и c ≡ d (mod n), то:

Для праздничного чаепития необходимо купить n пирожных. В магазине продается всего два вида пирожных одного вида, причем пирожных одного вида осталось
Для праздничного чаепития необходимо купить n пирожных. В магазине продается всего два вида...

Как скопировать данные из одного вида таблицы в другою иного вида
Добрый день уважаемые гуру! Вопрос в следующем: есть необходимость скопировать данные из таблицы в...

Написать функцию которая по линейныму списку вида (a d r g h .) строит сложный список вида (a (d (r (g (h (.)
Написать функцию которая по линейныму списку вида (a d r g h ...) строит сложный список вида (a (d...


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

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

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