我一直在困惑如何让某个函数在Python中工作。函数将正整数转换为其他正整数,如下所示:
Phi_m(n2) = Phi_m(m*n + r) = m*x[n] + r*(x[n + 1] - x[n])
以上各项均为整数值,定义如下:
^{pr2}$一般来说,我们从一个数字串开始,比如0,1,1,2,3,3,最后是一个串(k+1)m-1项,其中k是你开始的项数,不包括0。为了使用这个函数,我们首先确定m,比如m=2。现在我们用m来分解n2,其中n2代表输出序列的一个“slot”。假设n2=5。然后我们询问“输出字符串的第五个‘槽’中有什么”。在这种情况下,我们的总输出字符串的长度为(5+1)2+1。请注意,我们不计算0—它总是存在的,并且在我们的目的中是第0项,因此我们有5个初始项。为了回答这个问题,我们取5=2*2+1作为分解。现在我们有了一个分解,我们可以应用我们的函数:
F(x(5)) = F(x(2*2+1)) 2x[2] + 1(x[3] - x[2]).
关键是,Python要做到这一点,就必须知道如何分解每个数字。所以它知道2是固定的,知道2*3太多了,所以选择2*2。然后它必须知道这太少了,然后加上余数1。只有完成了这一步,它才能得到n=5。也就是说,它可以运行函数。很明显,一旦它知道如何做,它就可以遍历我们范围内的每一个n,但我真的不知道如何编写这个函数的核心。在
现在回答一些问题:x是函数吗?单子?一个号码?x[n]本质上是一个列表。在
你说“输入字符串的值”是什么意思?菲姆的签名是什么?在
作用于这个列表的函数接受列表的一个元素,以某种方式给我们一个数字的分解,然后应用上面看到的“公式”。从这个意义上讲,它更像是一个两步算法。在
如果不清楚请告诉我。我一定会继续复习,直到对那些阅读者有意义为止。在
也许这段代码可以让你接近答案:
您最初的长度公式产生了一个越界错误,正如您在评论中所做的那样。很明显,
m * len(x) - 2
就是你的意思。在相关问题 更多 >
编程相关推荐