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

请求协助编写Python代码求解满足5个方程的6个变量数值解

问题分析与代码修正

先看给定的方程组,其实可以简化逻辑:
把b1=4*r1、b2=4*r2、b3=4*r3代入b1=b2+b3,会得到4*r1=4*r2+4*r3,两边除以4就是r1=r2+r3,这和最后一个方程完全一致。所以核心条件就是r1=r2+r3,b类变量由对应r类变量乘以4直接推导即可。

你的原代码存在两个关键问题:

  • 误用位运算符&代替逻辑运算符and,导致条件判断逻辑完全错误
  • 循环嵌套过多,很多变量存在依赖关系,无需单独循环遍历

优化后的代码

我们可以只循环r2和r3,直接计算r1和对应的b值,大幅提升效率:

# 可根据需求调整r2、r3的范围
for r2 in range(1, 20):
    for r3 in range(1, 20):
        r1 = r2 + r3
        b1 = 4 * r1
        b2 = 4 * r2
        b3 = 4 * r3
        # 匹配你原代码设定的数值范围限制
        if 9 <= b1 <= 50 and 9 <= b2 <= 50 and 5 <= b3 <= 20:
            print(f"b1={b1}, b2={b2}, b3={b3}, r1={r1}, r2={r2}, r3={r3}")

如果要保留你原有的多层循环结构,只需修正运算符即可:

for b1 in range(9,50):
    for b2 in range(9,50):
        for b3 in range(5,20):
            for r1 in range(5,20):
                for r2 in range(5,20):
                    for r3 in range(5,20):
                        # 将&替换为逻辑与and
                        if b1 == 4 * r1 and b2 == 4 * r2 and b3 == 4 * r3 and b1 == b2 + b3 and r1 == r2 + r3:
                            print(b1, b2, b3, r1, r2, r3)

运行结果示例

优化后的代码会输出所有符合范围要求的解,例如:

b1=20, b2=12, b3=8, r1=5, r2=3, r3=2
b1=24, b2=12, b3=12, r1=6, r2=3, r3=3
b1=28, b2=12, b3=16, r1=7, r2=3, r3=4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:18:20