作者wa007123456 (大笨羊)
看板C_and_CPP
標題[問題] 如何實做一個不會重複的"六進位"?
時間Fri Nov 11 17:37:27 2011
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
問題(Question):
是這樣的,我想寫一個程式,裡面有1~6的字元
最高位數是6位,且陣列上的值不可重複
例如: arr[0][1][2][3][4][5] <=正確!
arr2[0][0][1][2][3][4] <=錯誤!
小弟其實想用程式去算出一個題目
就是有一個密碼箱,有六個數字要填,其中1,2不能排首兩位
3,4不能排中間兩位 5,6不能排後面兩位
我大概知道是6!=720 是全部的可能(未含條件)
而含條件後的答案是80 (經過排列組合的計算)
我已經想了一個下午了....
但是還是沒有頭緒 小弟我是個初學者@@
有請前輩們賜教>< 感謝
ps:這是我突發奇想的問題...
另外有沒有大大可以推薦有關"資料結構"的書籍呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.228.221.15
※ 編輯: wa007123456 來自: 125.228.221.15 (11/11 17:40)
1F:→ x000032001:排列組合喔... 11/11 17:43
2F:→ x000032001:我可以說版規2嗎..XD 請附上自己的想法 11/11 17:45
可能要先寫好排列組合常用的運算
像是C(X,Y) ,P(X)...還有數階的函式(用遞迴)
但是最大的問題就是 程式沒辦法做"分類"的動作
他只能很暴力的算出來吧@@?
畢竟電腦是計算機.....但是不寫出這題我不會死心的..
※ 編輯: wa007123456 來自: 125.228.221.15 (11/11 17:48)
3F:→ LawlietDo:才6!就六層loop 最後一層做判斷 符合的話就輸出阿.... 11/11 17:49
我也是寫了六個for..
但是問題就是在..每位不能有重複的數字@@
不然判斷 count 會多出許多不正確的答案@@
4F:→ james732:最暴力的方式就是把所有可能的解都生出來再刪掉...XD 11/11 17:51
※ 編輯: wa007123456 來自: 125.228.221.15 (11/11 17:52)
5F:→ x000032001:開個陣列記錄有沒有被用過不就得了 11/11 17:52
6F:→ x000032001:搞成全域然後遞迴一下 就比for高級了"一點點".... 11/11 17:53
7F:→ tropical72:這不就是 next_perm 的東西嗎? 11/11 17:54
8F:→ x000032001:對阿(死) 我是覺得你先把程式寫出來 再去改他 11/11 17:54
9F:→ wa007123456:樓上@@ 那是甚麼? 11/11 17:55
10F:→ james732:我很不擅長這種問題耶,有需要加強嗎...? 11/11 17:55
11F:→ tropical72:oh,有條件限制的,我的作法和 james 一樣,合條件的話才 11/11 17:55
12F:→ x000032001:6個for也好阿 看看哪邊重複 哪邊多餘 再做修正 11/11 17:55
13F:→ james732:原po可以拿「c++ next_permutation」去google看看 11/11 17:55
14F:→ wa007123456:阿 有一點頭緒了! 11/11 17:56
15F:→ x000032001:讓他練練吧 雖然我以前也都#include <algorithm> ... 11/11 17:56
16F:→ wa007123456:先記錄全部的數字 把不合格的篩檢 最後在弄上分類 11/11 17:56
17F:→ tropical72:加到 solution,類似的東西 :#1DU99hiU ,最後慢慢check. 11/11 17:56
18F:→ tropical72:補一下, 轉去 Prob_Solve 可能較適合。 11/11 18:08
※ wa007123456:轉錄至看板 Prob_Solve 11/11 18:11
19F:推 CJHhelper:不知道你的對象 是index 還是值 還是值去當作index? 11/11 18:30
20F:→ bleed1979:不會重複可行,但是不會產生不合條件的很難。 11/11 19:18
21F:→ bleed1979:再怎麼樣應該都會產生不合條件再用條件式輔助剔除。 11/11 19:18
22F:→ bleed1979:變成結果都是符合條件但是過程中會有不合條件的出現。 11/11 19:20
※ 編輯: wa007123456 來自: 125.226.11.24 (11/12 10:31)