※ 引述《sjgau (sjgau)》之銘言:
: 接著,產生所有的組合列印,
: 八選六,暫時沒有頭緒?
: 假設,選出來的號碼是
: 1,2,3,4,5,6,7,8
: 組合的第一位數,
: 1 - 8, 都可以
: 假設 1, 固定下來,接著是 第二位數
: 2 - 8 ,都可以
: 這種想法,如何寫成 程式?
用算珠法. (想像算盤的算珠在桿子上移動的情況.)
空間有八格,想像有六顆擺在1,2,3,4,5,6,這是第一組.
然後使用下列規則:
1. 由右邊開始找 "右邊有空格,最靠右的球". 假如找不到, 程式結束.
否則繼續下一步.
2. 由 1. 找到的球向右移動一格, 然後將此球右邊的球 (如果有的話) 全部
向左移動到貼緊此球為止. 然後將移動之後的狀態印出.
例如之前狀態是 1 2 3 4 5 8, 則找到球為 5, 並且下一步狀態為 1 2 3 4 6 7,
是右移之前的 5 球並左移之前的 8 球.
--
/yau
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.110.135