Помогите написать функцию 4**3 = 13 + 15 + 17 + 19 в python

Всем привет. Помогите написать функцию:

существует закономерность:

1^3 = 1; 
2^3 = 3 + 5; 
3^3 = 7 + 9 + 11;
4^3 = 13 + 15 + 17 + 19;
и т. д.

Надо создать функцию show_cube(n), которая при вызове выводит соответствующую строку: Например: show_cube(3) должна вывести: 3**3 = 7 + 9 + 11

show_cube(5) должна вывести: 5**3 = 21 + 23 + 25 + 27 + 29 = 125


Ответы (1 шт):

Автор решения: Zhihar

Не понимаю зачем тут вообще питон?

сумма арифметической прогрессии -

S = (2a1 + d(n-1)) * n / 2

если нужны последовательные нечетные числа, то получаем

S = (2a1 + 2(n-1)) * n / 2 = (a1 + n - 1) * n

при этом надо разложить число n^3, а значит

n^3 = (a1 + n - 1) * n

откуда

n^2 = a1 + n - 1

и

a1 = n^2 - n + 1

т.е. первый член прогрессии найден (n - известен был)

И что - эту формулу надо на питоне закодить?!!!

Алгоритм:

  1. вычислить a1 из приведённой выше формулы
  2. создать список из n элементов, содержащий числа a1 и выше
  3. вывести список поэлементно, используя в качестве разделителя +

вариант 1 - простой

print(f"{n}^3 = ", end='')
print(*list(map(lambda x: n * n - n + 1 + x * 2, range(n))), sep=' + ')

вариант 2 - используется высшая математика (интегральное и тензорное исчисления)

print(f"{n}^3 = ", end='')
print(*range(n * n - n + 1, n * n + n + 1, 2), sep=' + ')

вариант 3 - утечка из Зоны 51

print(f"{n}^3 = {' + '.join(map(str, range(n * n - n + 1, n * n + n + 1, 2)))}")
→ Ссылка