Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 回溯以生成约束内的所有数字_Python_Backtracking - Fatal编程技术网

Python 回溯以生成约束内的所有数字

Python 回溯以生成约束内的所有数字,python,backtracking,Python,Backtracking,我试图创建一个函数,生成所有可以通过素数组合形成的数,这些素数满足在某个数的99%以内且小于或等于该数的约束。 素数是 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43] 指数是 [39,19,9,6,3,3,2,2,1,1,1,1,1,1] 我现在的代码只使用一个素数,然后停止, 就像2^1*3^1*5^1*…*17^1之类,它不会增加指数。我不确定这里出了什么问题,我不知道问题出在哪里。这是我的密码 def rec(start):

我试图创建一个函数,生成所有可以通过素数组合形成的数,这些素数满足在某个数的99%以内且小于或等于该数的约束。 素数是 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43] 指数是 [39,19,9,6,3,3,2,2,1,1,1,1,1,1]

我现在的代码只使用一个素数,然后停止, 就像2^1*3^1*5^1*…*17^1之类,它不会增加指数。我不确定这里出了什么问题,我不知道问题出在哪里。这是我的密码

def rec(start):
    global freqA
    global A
    global exp
    if start >=length:return True
    print A," ",freqA
    if A>= int(0.99*curt):
        for i in xrange(length):
            exp[i]=exponents[i]-freqA[i]
        rec1(0)

    for i in xrange(exponents[start]):

        freqA[start]+=1
        A*=primes[start]
        if A<=curt and  rec(start+1): return True
        freqA[start]-=1
        A/=primes[start]
return False
def rec(启动):
全球频率
全球A
全球经验
如果开始>=长度:返回真值
打印一个“”,频率
如果A>=int(0.99*curt):
对于X范围内的i(长度):
exp[i]=指数[i]-freqA[i]
记录1(0)
对于x范围内的i(指数[开始]):
freqA[start]+=1
A*=素数[开始]
如果A线

不在循环中


以防万一:17!=355 687 428 096 000

什么是17!应该是什么意思?我改了,但还是不起作用。
exp[i]=exponents[i]-freqA[i]