我目前正在爲學校的Android的15益智遊戲。可悲的是我遇到了一個問題。麻煩在Java中的方程
我需要重寫這個公式從它而不是索引獲取一個行和列。看看代碼,如果你們可以幫助我!
這需要一個行和一列,並返回一個相應的索引。
int index = 4 * (row - 1) + (column - 1);
但是,現在我想將索引變成一個行和一列。 所以沒有人知道如何排除這個等式,將一行和一列返回到兩個不同的整數。
感謝, 的Mikael
我目前正在爲學校的Android的15益智遊戲。可悲的是我遇到了一個問題。麻煩在Java中的方程
我需要重寫這個公式從它而不是索引獲取一個行和列。看看代碼,如果你們可以幫助我!
這需要一個行和一列,並返回一個相應的索引。
int index = 4 * (row - 1) + (column - 1);
但是,現在我想將索引變成一個行和一列。 所以沒有人知道如何排除這個等式,將一行和一列返回到兩個不同的整數。
感謝, 的Mikael
試試這個:
row = index/4 + 1;
column = (index % 4) + 1;
注意,這(和原來的公式)只有工作,如果column < 5
(這是當然的,對於一個15拼圖)。
看看這個頁面System of linear equations。在你的情況下,你有兩個未知的變量(行和列)和只有一個方程,所以你可能有多個解決方案(值的幾個)的行和列。請注意,在你的情況下,你也有關於行和列的值的約束,因爲這些是數組索引。
對於15個難題,有4行和4列。所以他有一個額外的約束 – 2012-03-09 08:30:59
在感興趣的領域(格點[1,4] x [1,4]),只有一個解決方案。您參考的文章中的材料不適合解決此類問題。 – 2012-03-09 08:34:18
嘗試繪製出一個數組,看看你是否可以找出模式。當你向下移動一個單元格時,觀察索引的作用,或者向右移動一下。
請注意,下圖中的索引是基於1的,但對於java數組,您需要基於0的索引。
15個謎題使用4 x 4的運動場。 – 2012-03-09 08:36:44
+1用於解釋問題的一般解決方案 – 2012-03-09 08:42:10
確保你只能得到索引/ 4和指數4%,這是地板的整數部分。 – 2012-03-09 08:31:26
@EuclidesMulémbwè - 在Java中,'index/4'是整數除法並自動發言。另外,因爲'index'是一個'int','index%4'已經是一個'int'。 – 2012-03-09 08:35:32
謝謝你!這就是訣竅! :) – user1258829 2012-03-09 08:43:08