在Python中寻找参数化可变长度的线性丢番图方程的界线

问题描述

使用SymPy's Diophantine模块,可以为任何线性双色子方程获得参数化版本。然后,可以通过对每个参数项进行迭代来找到方程的解,如the solution to this particular question所示。

但是,该问题的解决方法是通过手动来找到每个参数的范围,以在两个变量的问题中进行迭代以获得正整数解。我的程序应该为具有可变项数的线性diophantine方程找到自然数解(最多期望3到大约12个),因此它必须能够确定每个参数本身要迭代的范围。所有条款都累加了最终的整数目标,例如:

12*A + B + 14*C + 16*D + 31*E - 507
(t_0,t_0 + t_1,t_0 + t_1 + t_2,-23*t_0 + t_1 + 3*t_2 + 31*t_3 + 1014,11*t_0 - t_1 - 2*t_2 - 16*t_3 - 507)

定义嵌套循环的数量非常简单(遍历解决方案集并使用SymPy的free_symbols函数提取所有嵌套循环),并且itertools具有product函数来设置这种嵌套循环,如图{{3}所示}。我想找到的是每个t参数的范围,这样我就找到了所有自然数解,并且 dont 陷入了无限循环。我该怎么办?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)