首页 > 解决方案 > 如何模拟基质上的液体流动

问题描述

我必须模拟通过包含一组整数的方阵的液体流动。液体应该从矩阵的左上角开始。它只能向相邻矩阵的右侧或下方移动。相邻矩阵的值越低,它流动的可能性就越大。液体的运动被认为是在矩阵的右边缘或下边缘停止。该程序应该能够显示液体通过的所有数字的总和。这是我的代码:

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 个月的编码。请帮帮我。

标签: pythonmatrix

解决方案


推荐阅读