我很难相信这不是一个骗局,但我不能找到任何帖子回答这个问题,所以我会尽力使它成为一个好的。向前移动n个矩阵
基本上问题是这样的:你有一个大小为Row X Column
的矩阵,你的处理器数量是P
。分区的最大大小(每个处理器分配的元素数量)为((Rows*Columns)/processors)+1
,并且您必须执行一些逻辑以确保不会超出范围。每个处理器都分配一个起点,并且必须跳转P
个索引。
所以其被顺序编号如下所示:
[1] [2] [3] [4]
[5] [6] [7] [8]
[9] [10] [11] [12]
[13] [14] [15] [16]
ID为0
一个处理器将获得1,4,7,10,13 ,和16.(最大分区大小)。
我的老师给了我们的算法是这样的:
I /列=列#和我%列=列#
这个工作对他给了我们像6/4 = 1
的例子, 6 % 4 = 2
所以6在索引[1][2]
逻辑至少是直观的,但在几次失败。
那么在NxM
矩阵上能够可靠地产生期望值的索引的算法是什么?
您的问题陈述很好奇。我没有看到把这个想象成二维矩阵的优点。你似乎有一个数组是循环分区的* n *处理器。也许用这种方式来解决问题将有助于你理解解决方案。 –
该任务要求使用矩阵,我很确定教师将在测试中期望此算法。 – Csteele5
如果你不认为这些公式在某些场合有效,你应该提供一个你认为它不能正常工作的例子。 – Sneftel