我的代码存在问题
def bconver(n,b):
for i in range(n):
x = b ** i
我想让b
获得n范围内所有i
值的幂。我需要能够获取这些值并将它们除以n允许我将其更改为任何基础。
我已经尝试过这段代码,但由于我之后无法分割这些值,因此无效。另外,我需要不在列表中的答案
x = [b ** i for i in range(n)]
答案 0 :(得分:1)
您可以将列表理解中的每个值除以n
:
x = [b ** i for i in range(n)]
x_over_n = [a/n for a in x]
def x_to_the_i_over_n(x, i, n):
return x**i / n
n = 4
x = 123
results = []
for i in range(n):
results.append(x_to_the_i_over_n(x, i, n))
import numpy
b = numpy.array(range(10))
b**2
#--> array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81])
b**2 / 4
#--> array([ 0. , 0.25, 1. , 2.25, 4. , 6.25, 9. , 12.25, 16. , 20.25])
答案 1 :(得分:1)
您可以在列表理解中执行所需的任何操作。例如,
x = [(b ** i) / n for i in range(n)]
听起来像是你正在寻找的最终结果。如果你想要中间结果,只需使用另一个列表理解:
x = [b ** i for i in range(n)]
x_divided_by_n = [element / n for element in x]
如果您想要更简洁的方式来表达这些类型的操作,请查看使用numpy。