Например:Как отменить операцию% в питона
x = (y*6) % 26 #this is a consistent formula
18 = (y*6) % 26
Как бы решить для у? Или есть способ легко изменить операцию%?
Например:Как отменить операцию% в питона
x = (y*6) % 26 #this is a consistent formula
18 = (y*6) % 26
Как бы решить для у? Или есть способ легко изменить операцию%?
Нет точного способа повернуть вспять операцию, так как вы потеряли информацию, так как% дает вам остаток, когда разделяются два числа.
Это как сказать, что если я делю х на 6, я получаю целое число и остаток от 3. Я не могу сказать, что такое X - это может быть 9, это может быть 15 или любое из бесконечного числа возможностей , Для его работы вам понадобится целое число, а также модуль.
Почему вы пытаетесь это сделать - возможно, мы сможем помочь, если вы расскажете нам больше о проблеме, которую пытаетесь решить.
Вы не можете реально изменить арифметику по модулю. Арифметика Modulo возвращает в основном группы эквивалентности. Подумайте о календаре ...
календарей (и часы) являются модами 12.
3 месяца после октября в январе, то есть (10 + 3)% 12 == 1
15 месяцев после октября в январе , то есть (10 + 15)% 12 == 1
и т.д ...
поэтому ваш вопрос, кажется, спросить, если вы можете сказать, в каком году это, зная, что календарный месяц это, и это, конечно, невозможно
Это идеальная аналогия! Любить это! –
18 = (у * 6)% 26
означает, что
у * 6 = п * 26 + 18, где п может быть любое целое значение. Так
у = п * 26/6 + 3
или
у = п * 13/3 + 3
Теперь вы можете сказать, что у представляет собой целое число, тоже. Это происходит только для
у = п * 13 + 3
так, у = 3, 16, 29, 42, ...
Существует не легкий путь. Существует несколько решений для 'y'. –
http://rosettacode.org/wiki/Modular_inverse#Python Если это помогает. – karthikr
Как бы я решил для y? Я не знаю, как обрабатывать переменное движение, когда участвует%. – sudobangbang