python - 如何模拟基质上的液体流动
问题描述
我必须模拟通过包含一组整数的方阵的液体流动。液体应该从矩阵的左上角开始。它只能向相邻矩阵的右侧或下方移动。相邻矩阵的值越低,它流动的可能性就越大。液体的运动被认为是在矩阵的右边缘或下边缘停止。该程序应该能够显示液体通过的所有数字的总和。这是我的代码:
import numpy as np
mtr= np.array ([[0, 2, 9],
[4, 9, 8],
[6, 8, 1]])
print(mtr)
def min_adj_val(a, b):
if (a < b):
return a
else:
return b
def min_mtr(mtr, m, n):
if (m == 2 or n == 2):
return mtr[m][n]
else:
return mtr[m][n] + min_adj_val(min_mtr(mtr, m+1, n),min_mtr(mtr, m, n+1))
print(min_mtr(mtr,0, 0))
上面代码的输出:10
预计为:11
我希望通过路径 0-2-9 将其设为 11。但它选择了成本最低的路径,即 0-4-6。我真的是初学者,只学习了大约 4 个月的编码。请帮帮我。
解决方案
推荐阅读
- jasper-reports - 如何更改饼图中的颜色(jaspersoft 工作室)
- python - 如何使用函数过滤数据框?
- git - Git 搞乱头和大师
- django - 如何在 Django admin 中显示正确的名称对象而不是“XXX 对象”
- python - 如何在保持结构的同时写入预先存在的 xml 文件?
- php - PluginManager::get 无法获取或创建 FileQueryPlugin 的实例
- hyperledger-fabric - 订购者是否存储所有区块链?
- angular - 可观察对象字段作为 Firestore 中的查询参数
- python-asyncio - 测试返回协程的函数包装器
- java - cmd中的scipt在java文件中创建包目录