创建矩阵并获取每行和列的最大值

发布于 2025-01-11 10:33:13 字数 268 浏览 0 评论 0原文

我想在给定每行和列的最大的情况下制作最小矩阵。

示例:

给定:

row_max = [50, 20]
col_max = [50, 20, 3]

结果:

array = [[50, 0, 0],
         [0, 20, 3]]

I want to make the minimum matrix given the max of each row and column.

Example:

Given:

row_max = [50, 20]
col_max = [50, 20, 3]

Result:

array = [[50, 0, 0],
         [0, 20, 3]]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烛影斜 2025-01-18 10:33:13

maxColIndex 为包含 col_max 内最大值的列索引:

col_max = [50, 20, 3] # maxColIndex = 0

maxRowIndex 为包含 row_max 内最大值的行索引>:

row_max = [10, 50, 20, 5] # maxRowIndex = 1

所以我们

    | 50 20  3 
 ------------- 
 10 |  ?  ?  ? 
 50 |  ?  ?  ? <- maxRowIndex 
 20 |  ?  ?  ?
  5 |  ?  ?  ?
       ^
  maxColIndex

现在的目标是放置尽可能多的0。请注意,如果最大和最小行集合中有相同的值(例如5020),我们可以只输入一个值:

    | 50 20  3 
 ------------- 
 10 |  ?  ?  ? 
 50 | 50  ?  ? <- maxRowIndex 
 20 |  ? 20  ?
  5 |  ?  ?  ?
       ^
  maxColIndex

现在将所有剩余的 row_max 值放入 maxColIndex 列中:

    | 50 20  3 
 ------------- 
 10 | 10  ?  ? 
 50 | 50  ?  ? <- maxRowIndex 
 20 |  ? 20  ?
  5 |  5  ?  ?
       ^
  maxColIndex

最后,将所有剩余的 col_max 值放入 maxRowIndex 列中> row:

    | 50 20  3 
 ------------- 
 10 | 10  ?  ? 
 50 | 50  ?  3 <- maxRowIndex 
 20 |  ? 20  ?
  5 |  5  ?  ?
       ^
  maxColIndex

所有索引都设置完毕,时间到填充矩阵中未设置的项

    | 50 20  3 
 ------------- 
 10 | 10  0  0 
 50 | 50  0  3 <- maxRowIndex 
 20 |  0 20  0
  5 |  5  0  0
       ^
  maxColIndex

Let maxColIndex be column's index which contains maximum value within col_max:

col_max = [50, 20, 3] # maxColIndex = 0

Let maxRowIndex be row's index which contains maximum value within row_max:

row_max = [10, 50, 20, 5] # maxRowIndex = 1

So we have

    | 50 20  3 
 ------------- 
 10 |  ?  ?  ? 
 50 |  ?  ?  ? <- maxRowIndex 
 20 |  ?  ?  ?
  5 |  ?  ?  ?
       ^
  maxColIndex

Now our goal is to put as many 0 as possible. Please note, that if there are same values in both max and min rows collections (e.g. 50, 20) we can put just one value:

    | 50 20  3 
 ------------- 
 10 |  ?  ?  ? 
 50 | 50  ?  ? <- maxRowIndex 
 20 |  ? 20  ?
  5 |  ?  ?  ?
       ^
  maxColIndex

Now put all the rest row_max values into the maxColIndex column:

    | 50 20  3 
 ------------- 
 10 | 10  ?  ? 
 50 | 50  ?  ? <- maxRowIndex 
 20 |  ? 20  ?
  5 |  5  ?  ?
       ^
  maxColIndex

Finally, put all the rest col_max values into the maxRowIndex row:

    | 50 20  3 
 ------------- 
 10 | 10  ?  ? 
 50 | 50  ?  3 <- maxRowIndex 
 20 |  ? 20  ?
  5 |  5  ?  ?
       ^
  maxColIndex

All indexes are set, time to fill the unset items of the matrix

    | 50 20  3 
 ------------- 
 10 | 10  0  0 
 50 | 50  0  3 <- maxRowIndex 
 20 |  0 20  0
  5 |  5  0  0
       ^
  maxColIndex
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文