( то есть число x находится в пределе 100 миллионов чисел, но есть огромные числа а и b которые находятся в диапазоне 10^53
Но число x находится в диапазоне от 1 до 10^9. Вопрос как разложить все это? Я использую обычную формулу.
- Код: Выделить всё
x = ((a + (b*R)) % mod)
У меня не очень глубокие познание в математике, но должен существовать метод с помощью которого можно упростить поиск.
То есть изменить формулу.
Числа а и b зашифрованный с помощью компилятора моего девайса, известно что числа, а и b находятся в диапазоне 10^53
Единственное что я могу через девайс это взаимодействовать на числа, а и b это умножать другие числа,
складывать и вычитать их между собою, а так же складывать и вычитать другие числа.
Я попросил программистов написать программу для этих математических операции.
В итоге вышла формула где R - это любое случайное число (Программа генерирует и подставляет случайное число)
Программу написали так, чтобы диапазон случайных чисел R можно было менять от 1 до 10^53. (При переборе)
Но числа огромные с помощью перебора нет вариантов, что я получу число x в диапазоне 10^9
Модуль известен это число которое тоже 10^53
- Код: Выделить всё
mod = 27471149068459679833548130642941322938763819060730593
x = ((a + (b*R)) % mod)
x = ((a - (b*R)) % mod)
x = ((b + (a*R)) % mod)
x = ((b - (a*R)) % mod)
Как можно изменить формулу чтобы, упростить поиск, разложить числа и получить число x ?
Все таки число x который я ищу составлять наименьший диапазон, то есть меньше чем сам модуль.