看板 C_and_CPP 關於我們 聯絡資訊
我打算用遞迴寫字元的排列 可是這個字元陣列裡有時候可能會有重複的情況 譬如說 a b c d e f # # 當這八個字元下去做排列的時候 理應只有 8!/2! 的答案 但是對於電腦來說還是有8!個答案 請問要怎麼樣避免這種狀況發生?? 可否題點一下解決的方法@.@? 使用遞迴實在是好難...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.115.251
walker2009:一個很暴力的方法是用hash記下哪個曾經出現過... 03/16 16:08
walker2009:另外一個方法是給予同樣的 symbol 編號 03/16 16:09
walker2009:如 #1 #2 #3 03/16 16:09
walker2009:而在做遞迴排列時增設條件, 條件是 03/16 16:09
walker2009:同樣的 symbol 編號小的一定要在編號大的前面 03/16 16:10
walker2009:沒細想, 應該可行, 有問題有其他高手版大會幫忙提出XD 03/16 16:11
cutecpu:###1 照樓上的方法可以排出 #1## 嗎 03/16 18:05
YesIam118:http://www.badongo.com/file/21278231 像這樣嗎? 科科 03/16 18:07
walker2009:樓下V大 03/16 18:16
liu2007: 可以請教一下Y大是怎麼做的嗎@.@? 03/16 20:17
YesIam118:遞迴只應118用, 凡人該當用迴圈. 03/16 21:00
walker2009:樓下V大 03/16 22:08
F23ko:好像很有趣....我想想看 03/16 22:22
walker2009:樓下V大 03/16 22:29
F23ko:寫出來了 =.= 03/17 00:15
F23ko:原po已經寫出用遞迴列出"會重覆"的排列了嘛 03/17 00:36
F23ko:關鍵在於.... 要寫個區域陣列變數,記錄下自己已經用過的字 03/17 00:37
F23ko:母,只要不用同樣的字母下去跑,就ok了 03/17 00:37
F23ko:如果你想看C#的程式碼 我可以寄給你.... C++我忘很久了 = = 03/17 00:39