具有范围的指数幂
Exponential powers with range
我的代码有问题
def bconver(n,b):
for i in range(n):
x = b ** i
我正在尝试对 n 范围内的所有 i
值求 b
次方。我需要能够获取这些值并将它们除以 n,从而允许我将其更改为任何基数。
我已经尝试过此代码,但它不起作用,因为我无法在之后除以这些值。另外,我需要不在列表中的答案
x = [b ** i for i in range(n)]
您可以将列表理解中的每个值除以 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])
您可以在该列表理解中执行任何您想要的操作。例如,
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。
我的代码有问题
def bconver(n,b):
for i in range(n):
x = b ** i
我正在尝试对 n 范围内的所有 i
值求 b
次方。我需要能够获取这些值并将它们除以 n,从而允许我将其更改为任何基数。
我已经尝试过此代码,但它不起作用,因为我无法在之后除以这些值。另外,我需要不在列表中的答案
x = [b ** i for i in range(n)]
您可以将列表理解中的每个值除以 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])
您可以在该列表理解中执行任何您想要的操作。例如,
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。