具有范围的指数幂

时间:2017-11-20 03:15:43

标签: python range exponent

我的代码存在问题

def bconver(n,b):
    for i in range(n):
        x = b ** i

我想让b获得n范围内所有i值的幂。我需要能够获取这些值并将它们除以n允许我将其更改为任何基础。

我已经尝试过这段代码,但由于我之后无法分割这些值,因此无效。另外,我需要不在列表中的答案

x = [b ** i for i in range(n)]  

2 个答案:

答案 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))

编辑2:

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