c - 如何求解 4 个变量的方程

标签 c math equation equation-solving

说我有

    a + 3b + 4c +2d =40; 

我怎样才能解决a、b、c和d。 我不知道从哪里开始,我正在使用 c 语言进行编码。我知道一种解决方案是 a=9 b=3 c=2 d=7。

我忘了补充一下,a、b、c、d 的域是 0-29(含)。

最佳答案

这个问题相当于一种硬币找零问题 - 获得有限数量(此处最多 29 个)硬币和一些名义值(此处为 1,2,3,4)的总和

进行所有更改的最简单方法是递归生成。

 makesum(coinlist, currentsum, resultlist)
      if currensum < 0
           return

      if currensum = 0
           print resultlist

      for coin in coinlist
          makesum(coinlist - coin, currentsum - coinvalue, resultlist + coin)

对于特定情况 - 小的固定名称列表 - 您可以只制作 4 个嵌套循环

还存在动态编程方法 - 用可能的组合填充表[0..sum](为了获得所有可能的组合,DP 并不更快)

关于c - 如何求解 4 个变量的方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52789565/

相关文章:

html - 网络上的数学方程式

无法使用 Visual C++ 编译器包含某些头文件

java - 将纪元时间转换为小时

r - 我可以在 R markdown 中删除方程式中的文本吗

c++ - 我将 ASCII 单词转换为数字,但无法解码它们。如何转换 1=a、2=b、28=ab 等? (伪代码好吧)

python - 手动计算 AIC 编号给定数据分布和一些分布字符串

algorithm - 求两个线性方程交集的算法是什么?

c - 将已知大小的二维数组转换为使用 malloc 代替 C 中函数的数组的步骤是什么?

c - 如何正确管理strtok_r的输出?

c - 64位精度 sleep 功能?