Учитывая два различных положительных целых числа, a
и b
, могут ли они когда-либо равняться друг другу при следующих правилах их преобразования (записано в псевдокоде python -esque):
if a < b:
a = 2a
b = b-a
elif a > b:
b = 2b
a = a-b
else:
return True
Пример пары, которая будет равна:
11,21
22,10
12,20
24,8
16,16
И пример пары, которая никогда не будет равняться друг другу:
1,4
2,3
4,1
3,2
1,4
repeating...
Итак, мой вопрос, можете ли вы сказать, что два числа будет равен без выполнения функции, аналогичной приведенной выше, и поиска равенства или бесконечного l oop? Можно ли как-то сказать это, просто взглянув на два числа?
Это напоминает мне гипотезу Коллатца, но с двумя числами вместо одного.
Получив графики всех комбинаций двух чисел (a
на оси Y и b
на оси X), мы получаем повторяющийся узор. Желтые обозначающие пары, которые будут равны друг другу. Нижний треугольник отсутствует, потому что это зеркало верхнего треугольника. Этот был вычислен с модификацией вышеупомянутой функции. Но было бы здорово не делать этого, потому что это быстро становится неразрешимым.
![enter image description here](https://i.stack.imgur.com/LqBVE.png)