【问题标题】:Finding integral solution of an equation求方程的积分解
【发布时间】:2014-04-21 00:06:07
【问题描述】:

这是一个更大问题的一部分。它实际上是一个数学问题。因此,如果有人可以指导我使用任何算法来获得此问题的解决方案,或者伪代码会有所帮助,那将是非常棒的。

问题。给定一个方程,检查它是否有一个积分解。 例如:

(26a+5)/32=b

这里a 是一个整数。是否有算法可以预测或查找b 是否可以是整数。我需要一个不特定于这个问题的通用解决方案。方程可以变化。谢谢

【问题讨论】:

  • “方程可以变化”有点含糊。或者您是否要求针对Fermat's Last Theorem 之类的问题提供通用解决方案?
  • 只有2个变量,还是可以有更多?任何数字还是有上限?对于数字术语也是如此。方程是否可以包含对数、幂、分母中的变量,或者可以放入方程中的任何其他内容,还是仅包含其中的一部分?
  • 我只处理 2 个变量。

标签: algorithm math linear-algebra equation algebra


【解决方案1】:

Linear Diophantine 方程采用ax + by = c 的形式。如果cab 的最大公约数,这意味着a=z'cb=z''c 那么这是Bézout's identity 的形式

使用a=z'b=z'',方程有无数个解。因此,您可以检查c 是否是ab最大公约数 (GCD),而不是试用搜索方法

如果ab 确实是c 的倍数,那么xy 可以使用extended Euclidean algorithm 计算,它会找到整数xy(其中一个通常为负数) ) 满足 Bézout 的身份

(附带说明:这也适用于任何其他Euclidean domain,即多项式环和每个欧几里得域都是unique factorization domain)。您可以使用迭代法来找到这些解决方案:

Integral solution to equation `a + bx = c + dy`

【讨论】:

    【解决方案2】:

    您的问题是线性丢番图方程的一个例子。关于那个,Wikipedia says:

    这个丢番图方程 [即,ax + by = c] 有一个解(其中 x 和 y 是整数)当且仅当 c 是 a 和 b 的最大公约数的倍数.此外,如果 (x, y) 是一个解,则其他解的形式为 (x + kv, y - ku),其中 k 是任意整数,u 和 v 分别是 a 和 b 的商通过 a 和 b 的最大公约数。

    在这种情况下,(26 a + 5)/32 = b 等价于 26 a - 32 b = -5。未知数的系数gcd为gcd(26, -32) = 2。由于-5不是2的倍数,所以无解。

    一般丢番图方程是未知数中的多项式,只能通过更复杂的方法求解(如果有的话)。网络搜索可能会找到针对该问题的专用软件。

    【讨论】:

      猜你喜欢
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 2018-01-12
      • 2011-11-01
      • 1970-01-01
      • 2014-03-22
      • 2013-05-10
      相关资源
      最近更新 更多