Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 17:44   #1
gofkane
 
Регистрация: 25.08.2011
Сообщений: 7
По умолчанию Как найти все X

f(x) mod g(x) = 0

Как найти все корни уравнения быстрее чем за O(x)? f и g - линейные функции.

Последний раз редактировалось gofkane; 09.11.2012 в 18:07.
gofkane вне форума Ответить с цитированием
Старый 09.11.2012, 17:52   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Кто такой n? Решений уравнения, скажем, x mod x = 0 - бесконечно много, с такими случаями как?
Abstraction вне форума Ответить с цитированием
Старый 09.11.2012, 17:56   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

на РСА решили напасть?
p51x вне форума Ответить с цитированием
Старый 09.11.2012, 17:59   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

А с каких пор в RSA линейные функции? Там как бы экспонента...
Abstraction вне форума Ответить с цитированием
Старый 09.11.2012, 18:07   #5
gofkane
 
Регистрация: 25.08.2011
Сообщений: 7
По умолчанию

Ну давайте конкретный пример для которого всё и делается:

n = const

1) (n - x - 2) mod (2 * x - 2) = 0
2) (n + x) mod (2 * x + 2) = 0

Если пробегать по всем x то не укладывается по времени. Пробовал после первого найденного подбором увеличивать так: x= g(x+1); - теряет много корней.

Последний раз редактировалось gofkane; 09.11.2012 в 18:11.
gofkane вне форума Ответить с цитированием
Старый 09.11.2012, 18:23   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

1) m=(n-3), y=(x-1), имеем m = (2z+1)y при произвольном целом z;
2) m=(n-1), y=(x+1), имеем m = (2z+1)y при произвольном целом z.
Осталось в каждом случае разложить m на множители...
Abstraction вне форума Ответить с цитированием
Старый 09.11.2012, 18:46   #7
gofkane
 
Регистрация: 25.08.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
1) m=(n-3), y=(x-1), имеем m = (2z+1)y при произвольном целом z;
2) m=(n-1), y=(x+1), имеем m = (2z+1)y при произвольном целом z.
Осталось в каждом случае разложить m на множители...
Откуда что взялось? Можно поподробней?
gofkane вне форума Ответить с цитированием
Старый 09.11.2012, 22:42   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

(n - x - 2) mod (2 * x - 2) = 0
n-x-2 = z*(2x-2)
n-3=2z*(x-1)+(x-1)
n-3=(2z+1)(x-1)
Берём n-3, выделяем из него степень 2, оставшееся раскладываем на множители. Каждое подмножество множества его нечётных множителей соответствует некоторому целому z, остальное - некоторому целому x. Отдельно стоит отметить чётность решений: если y - решение, то -y - тоже решение.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти все ошибки в книге? Maryver Microsoft Office Excel 2 16.06.2011 19:08
Как найти все функции С++ в файе? 2Slide Общие вопросы Delphi 0 19.10.2010 21:34
Как найти все компьютеры в сети евгений_8686 Общие вопросы C/C++ 1 26.03.2010 17:59
Как найти все файлы в папке? blackstersl Общие вопросы Delphi 3 24.06.2009 16:52
Как в memo найти все e-mail'ы Черничный Общие вопросы Delphi 16 16.10.2008 09:13