我很難相信這不是一個騙局,但我不能找到任何帖子回答這個問題,所以我會盡力使它成爲一個好的。向前移動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