我对模块化域有一组约束,例如 for all
问题是,这样的存在吗?我已经指出了连续替换的方法,最终我实现了以下 python 代码。
import fractions
def exist(ruleList, acc = [0,1]): # currentCandidate , currentDomain
if len(ruleList) == 0:
return True
else:
rule = ruleList[0]
n = rule[1]/fractions.gcd(rule[1], acc[1])
newDomain = acc[1] * n
for candidate in (acc[0] + acc[1] * i for i in xrange(n)):
if candidate % rule[1] in rule[0]:
if exist(ruleList[1:], [candidate, newDomain]):
return True
return False
rules = [([0,1,2],5), # A_1,n_1
([4,5,6],9), # A_2,n_2
([0,3,6],10)] # A_3,n_3
print (exists(rules),) # True
rules = [([0,2,3],5), # A_1,n_1
([1,2,8],9), # A_2,n_2
([4,6,9],10)] # A_3,n_3
print (exist(rules),) # False
他们是实现这种更好的方法还是更好的算法方法?