給定一個二維數組,我需要提出一個輸出質心的算法。我提出了下面的算法,但是,當數組大小增加到10 x 10矩陣時,它會產生不正確的解決方案。我使用java編寫並運行了該算法。我沒有在這裏提供代碼,但只是我的算法的解釋,因爲我覺得它是不正確的。但是,我無法找出原因。矩陣的質心
Store into an array: Mean of each row
Store into an array: Mean of each column
The algo below is used for row and column:
Loop through the row array,
if(row = 1){
value = (mean of row 1) - (mean of row 2 + mean of row 3+ mean of row 4)
}else if(row =Length of array){
value = (mean of row 1 + mean of row 2 + mean of row 3) - (mean of row 4)}
else{
value = (mean of rows until ith row) - (ith row till end of array)
}
final value = lowest value;
我知道它應該處理行和列的平均值。所以在我的算法中,我找到了行和列的方法,然後進行上面顯示的計算。相同的算法適用於列。
任何和所有的幫助表示讚賞。也許,我對質心的理解是不正確的。如果事情不清楚,那就問問。這是我自己的算法,是根據我對質心的理解而創建的,所以如果它不明確,請不要問。謝謝!
看看這裏:https://en.wikipedia.org/wiki/Center_of_mass我想說如果你把細胞看作是在二維平面上等距離排列的粒子,你應該能夠調整相應的方程。 – Thomas
你的算法沒有提到距離,這是關鍵(雙關意圖)。 – weston
@Thomas,Cells表示二維數組中的每個單獨值?並使用在粒子系統下找到的方程式,並將m替換爲二維數組中的值,並且由於距離相等,R不包含在內?謝謝。 – user3453250