Мне бы хотелось как-то оценить скорость работы этого алгоритма.
Много текста, а покажите как вы его запускаете и что получаете.
Ваша рекомендация кажется мне несколько странной, ну да ладно.
Запускаю например так:
Код:
v1 = list(vector(20, i, i))
for(i=1, 20, print(v1[i]))
Получаю следующее:
Код:
[1]
[2]
[3]
[2, 2]
[4]
[3, 2]
[5]
[2, 2, 2]
[4, 2]
[3, 3]
[6]
[3, 2, 2]
[5, 2]
[4, 3]
[7]
[2, 2, 2, 2]
[4, 2, 2]
[3, 3, 2]
[6, 2]
[5, 3]
Что же мы получили? Мы получили строки треугольника
A210941 с индексами от
до
по возрастанию.
Но плюс алгоритма в том, что можно в качестве входных данных задавать значения не по-порядку, а абсолютно любые. Например:
Код:
v1 = list(vector(20, i, 2^i))
for(i=1, 20, print(v1[i]))
Соответственно он выдает следующее:
Код:
[2]
[2, 2]
[2, 2, 2]
[2, 2, 2, 2]
[4, 2, 2, 2]
[4, 3, 3, 2]
[11, 3]
[3, 3, 3, 3, 3, 2]
[5, 3, 3, 3, 2, 2, 2]
[8, 5, 2, 2, 2, 2, 2]
[4, 4, 3, 3, 3, 3, 2, 2, 2]
[17, 8, 2, 2]
[10, 8, 6, 4, 4]
[21, 11, 2, 2]
[8, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2]
[13, 11, 3, 3, 3, 3, 2, 2, 2, 2]
[12, 10, 5, 3, 3, 3, 3, 3, 2, 2, 2]
[14, 10, 9, 9, 6, 2, 2]
[18, 8, 8, 7, 5, 5, 5]
[17, 14, 10, 8, 4, 4, 2, 2]
Это строки треугольника
A210941, индексы которых это степени двойки от
до
по возрастанию.
Другой пример:
Код:
v1 = list([100, 27, 99, 91, 63, 176, 2301, 453, 921, 6817])
for(i=1, 10, print(v1[i]))
Соответствующие строки треугольника
A210941:
Код:
[7, 6]
[3, 3, 3]
[8, 5]
[11, 2]
[8, 2, 2]
[15]
[10, 7, 3, 3, 3]
[7, 3, 3, 3, 3]
[15, 5, 2]
[9, 8, 7, 7]