You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

丢番图方程问题问询:支票金额与找零场景的方程求解

解这个丢番图方程:支票金额互换问题

咱们先把问题里的初始方程修正一下——你给的A = D + 100c明显不符合美元和美分的换算逻辑(1美元=100美分),实际应该把所有数值转成美分来计算(避免小数,完美适配丢番图方程的整数解要求):

变量与方程定义

  • 设实际支票价值为A美分,那么A = 100D + c(D是实际美元数,0≤D≤99;c是实际美分数,0≤c≤99)
  • 收银员误将美元和美分互换,误写的支票金额为100c + D美分
  • 商品价格是10.08美元,即1008美分
  • 找零金额 = 误写金额 - 商品价格 = 7倍实际支票价值,由此得到核心方程:
    (100c + D) - 1008 = 7A
    

方程化简

把A = 100D + c代入方程,展开并整理:

100c + D - 1008 = 7*(100D + c)
100c + D - 1008 = 700D + 7c
93c - 699D = 1008

两边除以3简化为:

31c - 233D = 336

求解丢番图方程

步骤1:验证方程有解

用扩展欧几里得算法计算gcd(31,233):

  • 233 = 31×7 + 16
  • 31 = 16×1 + 15
  • 16 = 15×1 + 1
  • 15 = 1×15 + 0
    最终得gcd(31,233)=1,1能整除336,说明方程有整数解。

步骤2:推导特解

反向推导扩展欧几里得的结果:

1 = 16 - 15×1
  = 16 - (31 - 16×1)×1 = 2×16 - 31
  = 2×(233 - 31×7) - 31 = 2×233 - 15×31

两边乘以336,适配目标方程31c -233D=336,得到一组特解:c₀=-5040,D₀=-672。

步骤3:筛选符合实际的通解

二元一次丢番图方程的通解形式为:

c = c₀ + 233k
D = D₀ + 31k

(k为整数,因gcd=1,系数取对方的原系数)

现在需要找k使得0≤D≤99且0≤c≤99:

  • 由D≥0得:-672 +31k ≥0 → k≥22
  • 由D≤99得:-672 +31k ≤99 →k≤24

逐个试k值:

  • k=22:D=-672+31×22=10,c=-5040+233×22=86 → 符合0≤D,c≤99的实际要求
  • k=23/24:计算出的c值超过99,不符合美分的取值范围

结论与验证

唯一有效解是D=10,c=86,即支票实际价值为10美元86美分(10.86美元)。

验证:

  • 误写的支票金额:86美元10美分(86.10美元)
  • 找零:86.10 - 10.08 = 76.02美元
  • 7倍实际价值:7×10.86 = 76.02美元 → 完全匹配,结果正确。

内容的提问来源于stack exchange,提问作者Minura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:34:52