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

Google Foo-Bar挑战Level3末日燃料:测试用例失败求助

末日燃料问题(Level3)测试用例4-7失败排查方向

核心排查点

  • 吸收态/瞬态划分错误
    确认所有终止状态(燃料耗尽的状态)都被正确标记为吸收态,没有将瞬态误判为吸收态,反之亦然。比如状态转移概率全指向自身的才是吸收态,需严格按问题定义校验。

  • 矩阵运算逻辑漏洞
    马尔可夫链解法的核心是拆分转移矩阵为Q(瞬态间转移)、R(瞬态到吸收态转移),再计算N = (I - Q)^-1、N*R。需检查:

    • 矩阵行列索引是否完全对应,有没有出现错位或维度不匹配的情况
    • 矩阵求逆实现是否正确,浮点数版本的数值稳定性问题(比如极小值处理),Fraction版本的分数运算是否存在约分/计算错误
    • 矩阵乘法的实现是否符合线性代数规则,尤其是行列维度的对应关系
  • 边界场景未覆盖
    测试用例4-7大概率包含边界情况,需手动构造验证:

    • 初始状态即为吸收态的场景
    • 仅存在单个瞬态的场景
    • 部分瞬态无法到达特定吸收态的场景(对应结果应为0)
    • 转移概率包含0的极端情况
  • 结果格式化不符合要求
    问题要求输出分数形式的分子数组和公共分母,需检查:

    • 浮点数转分数时的精度丢失(即使改用Fraction,计算过程中是否有误)
    • 结果是否按吸收态的正确顺序排列
    • 公共分母是否为所有分数的最小公倍数,计算是否正确

手动测试示例

可以用以下简单用例验证代码逻辑:

# 测试用例1:初始瞬态只能转移到一个吸收态
test_case = [[0, 1], [0, 1]]
# 预期输出:分子[1],分母1

# 测试用例2:两个瞬态,分别能到达两个吸收态
test_case = [[0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
# 初始状态为索引0,预期输出:分子[1, 0],分母1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:52:49