范围内的指数幂[重复]

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 我也不确定这是否会更改代码,但我需要不在列表中的答案

以上是关于范围内的指数幂[重复]的主要内容,如果未能解决你的问题,请参考以下文章

实指数幂

2.1.1指数与指数幂的运算(分数指数幂等)的教学

幂函数 指数 对数 底数

指数函数 对数函数 冥函数 性质

指数函数底数为啥不能是负数,如果是负数会怎样

一次函数,二次函数,指数函数,对数函数,幂函数图像的增长特点