Я новичок в алгоритмах и имею дело с проблемой, которую не могу полностью перевести на математический язык.
Итак, мне дан массив [1,1], и я могу выполнить только одну сумму между их количество на шаг, ie вы можете выбрать только между:
[x(s+1), y(s+1)]=[x(s)+y(s),y(s)]
или
[x(s+1),y(s+1)]=[x(s), x(s)+y(s)]
, но не оба одновременно
Таким образом,
0: [1,1]
1: [2,1], [1,2]
2: [3,1], [2,3], [3,2], [1,3]
3: [4,1], [3,4], [5,3], [2,5], [5,2], [3,5], [4,3], [1,4]
...and so on.
Цель состоит в том, чтобы узнать, сколько шагов необходимо, чтобы получить данный массив [x, y].
На данный момент я знаю, что
if (min(x,y)==1):
steps =max(x,y)-1
if (x%2 ==0 and y%2==0):
steps= not possible
if (max(x,y)%min(x,y) == 0):
steps= not possible
if (x%3 ==0 and y%3==0):
steps= not possible
Также я построил график для каждой пары (x, y), сколько шагов необходимо сделать, и я могу видеть закономерность для каждого кратного x или y, но я не могу записать его как математическую функцию, когда x или y> = 5.
Мы будем благодарны за любые указания.