范围内的指数幂[重复]
Posted
技术标签:
【中文标题】范围内的指数幂[重复]【英文标题】:Exponential powers with range [duplicate] 【发布时间】:2017-11-20 03:15:43 【问题描述】:我的代码有问题
def bconver(n,b):
for i in range(n):
x = b ** i
我试图让b
得到 n 范围内所有 i
值的幂。我需要能够获取这些值并将它们除以 n 允许我将其更改为任何基数。
我已经尝试过这段代码,但它不起作用,因为之后我无法划分这些值。另外,我需要不在列表中的答案
x = [b ** i for i in range(n)]
【问题讨论】:
不,我的问题非常不同,我只问如何获取i
的所有值并将它们置于 b 的幂。没有询问基本转换问题
很公平,那么我不明白你对我的回答的评论。
【参考方案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])
【讨论】:
哦,哇,我忽略了,谢谢,但我需要它而不需要列表 你到底需要什么? 我要解决的总体问题是将基数为 10 的数字从任何基数更改为任何基数,而不需要 abc 的东西。我需要得到的最终答案是一个不在列表中的数字 我只需要能够在没有列表的情况下进行指数表示法 对不起,我不明白“没有 abc”是什么意思?【参考方案2】:您可以在该列表推导中执行您想要的任何操作。例如,
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。
【讨论】:
我将如何对 x 和 n 使用模数。从你给出的第一个例子 @nick 标准模运算符%
在 Python 中工作(例如,5 % 3 = 2
)。
是的,我明白,但是在执行 x = [(b ** i) / n for i in range(n)] 之后,例如 p = n%x
我也不确定这是否会更改代码,但我需要不在列表中的答案以上是关于范围内的指数幂[重复]的主要内容,如果未能解决你的问题,请参考以下文章