七个Dedekind的数字

时间:2018-10-09 22:38:23

标签: python-3.x numbers

我的问题是关于Dedekind数的。我想编写一个代码,打印出Dedekind数字的前七个数字,因为它使用的是Andrzej Kisielewicz于1988年给出的公式(https://en.wikipedia.org/wiki/N%C3% BAmero_de_Dedekind#cite_note-Kis88-5),但我尝试实现了它仅使用零值。然后,我尝试使用7的值,但是代码继续处理了很长时间,直到停止了它。总之,为什么我的代码只适用于0?

这是我的代码:

import math
x=int(input("Escriba un número... "))
def b(x, y):
    calc=(int(x/(2**y))-2*(int(x/(2**(y+1)))))
    return calc
def Dedekind(x):
    carry=0
    carry2=1
    carry3=1
    carry4=1
    k=1
    j=1
    i=0
    m=0
    for i in range(k, ((2**(2**x))+1)):
        for e in range(j, (((2**x)-1)+1)):
            for o in range(i, (j-1)+1):
                b1=b(k,i)
                b2=b(k,k)
                b3=b(i, m)
                b4=b(j,m)
                for u in range(m, (math.log2(i)+1)):
                    carry4*=(1-b3+(b3*b4))
                carry3*=(1-(b1*b2))+carry4
            carry2*=carry3
        carry+=carry2
    return carry
print(Dedekind(x))

0 个答案:

没有答案