Как создать al oop с повторяющимся pow в Python? - PullRequest
0 голосов
/ 27 апреля 2020

Я почти ничего не знаю о программировании, поэтому мой код, вероятно, очень плохой.

Мне нужна программа, чтобы взять число, которое я ввел (n), сделать n ^ n-1, затем взять n + 1 и делать (n + 1) ^ (n ^ n-1), затем n + 2 и делать (n + 2) ^ (n + 1) ^ (n ^ n-1) ... et c. Это повторяется у раз. Теперь простой способ - просто сделать

pow(n+1,pow(n,n-1))
pow(n+2,pow(n+1,pow(n,n-1)))
pow(n+3,pow(n+2,pow(n+1,pow(n,n-1))))
pow(n+4,pow(n+3,pow(n+2,pow(n+1,pow(n,n-1)))))
pow(n+5,pow(n+4,pow(n+3,pow(n+2,pow(n+1,pow(n,n-1))))))

... и так далее

Но это слишком уродливо и долго, особенно для длинных последовательностей. Поэтому я придумал приведенный ниже код и начал тестировать его для n = 1. Он выполняет математические вычисления вплоть до 4, но затем в 5 что-то ломается и возвращает неправильное значение (которое в этот момент должно быть 5 ^ 262144). Я не понимаю, как это исправить, и если даже есть такая for loop, которая сделает эту работу. [да, я знаю, что даже мне удается написать правильный код, в мире недостаточно оперативной памяти для вычисления следующего числа в этой последовательности, но я не планирую запускать это, я просто хочу создать код, который будет работать в теория, на компьютере с бесконечной памятью и вычислительной мощностью]

import math

print("Please input an integer greater than or equal to 1:")
n = int(input())
x = str(n-1)
r = str(n)+x
y = int(r)
print("Sequence starts:")
print(pow(n,n-1))
for n in range(n, y+1):
    print (pow(n+1,pow(n,n-1)))

Заранее спасибо, любая помощь приветствуется!

1 Ответ

0 голосов
/ 27 апреля 2020

Я не совсем уверен , если я понимаю, что вы ищете, но взгляните на этот код.

import math

def rn(n):
    if (n == 1):
        return 1
    else:
        return pow(n+1, pow(n, n-1))


print(rn(5))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...