所以我有一个整数列表,比如[2,2,2,3,…,n],这个列表的长度可以是1到100。我要做的是计算所有数字的幂。这应该非常容易,但也有规定,你必须提高每一个数字的权力下一个数字的权力下一个数字,以此类推。例如:如果列表首先包含[2,3,4],我需要计算3^4的幂,然后是2^(3^4的答案)。如果列表较长,则需要计算所有列表的值。上面的例子[2,3,4]应该返回2^81,根据wolfram的说法,应该是2417851639229258349412352。任何帮助都是很棒的,即使它只是一个算法(我可以从那里找出代码),我一直在努力想出一个足够的算法已经有一段时间了。你知道吗
这是我现在的一些代码。。。你知道吗
temp = []
length = 0
for num in powernumbers:
for index in num:
if index.isdigit():
temp.append(index)
length = len(temp)
if length > 0:
for j in reversed(range(len(temp))):
_temp = math.pow(int(temp[j-1]), int(temp[j]))
#THE ABOVE CODE WILL ONLY WORK FOR A LIST OF LEN 2
print(_temp)
#needs math.pow(0,(math.pow(1,(math.pow(2,...)))))
print("TEMP:", temp)
再次感谢您的帮助!你知道吗
从列表中弹出最后一个元素,然后向后浏览列表并保持指数化。你知道吗
结果是:
可以将^{} 与反向列表一起使用:
reduce
接受两个参数:function和iterable。然后,它将累计应用该函数,将可数化为单个值。函数的第一个参数是约化值,第二个参数是iterable中的item。因为我们想要以相反的顺序处理列表,所以我们使用^{3**4
。你知道吗注意,在python2上
reduce
是一个内置的,因此不需要导入任何内容。你知道吗首先初始化1上的结果,然后以相反的顺序遍历列表,将数字提升到上一个结果,第一次是1,这是中的本例的结果
但是请注意,这个Nested exponentials会增长得非常快,而且对于那些非常大的数字,很可能会出现内存错误
相关问题 更多 >
编程相关推荐