在略有修改的TOH中,我們有4個掛鉤。所以我們總共有4^N個磁盤位置。 現在我正在經歷的解決方案之一,給定的狀態,使用下面的代碼表示 -河內塔的所有狀態的二進制表示
for(int disc = 0; disc < N; disc++){
state += tower[disc]<<(disc*2);
}
塔[光盤] - >塔盤,其中當前所在,其可以是(0,1 ,2,3)
如果我在上面的代碼中使用N = 3,它會給我63,這是4^N -1。因此,該公式的作用,即0-63所有64個職位可以表示。但我無法理解數學關聯。
能否請你解釋一下上面的公式可以表示所有可能的磁盤位置,如果我們進一步轉變釘的數量或N將如何改變,以讓說,5
您能詳細說明「公式的作用」是什麼意思嗎?目標是找到一種使用數字編碼磁盤位置的方法,反之亦然,或者通過二進制計數來解決問題? – templatetypedef
@templatetypedef -goal是爲了理解磁盤位置的編碼以及上述方程如何工作,而不是解決問題。我想了解當N或釘的數量發生變化時,我需要如何修改給出的等式。 –