[問題] 排除輸出重複數值的方法

看板Python作者 (沙發椅)時間11年前 (2012/11/02 11:10), 編輯推噓0(0024)
留言24則, 6人參與, 最新討論串1/6 (看更多)
各位好 程式 8個變數 範圍由1~2 輸出 8個變數全部相加 = 9的結果 x=3 for a in range(1,x): for b in range(1,x): for c in range(1,x): for d in range(1,x): for e in range(1,x): for f in range(1,x): for g in range(1,x): for h in range(1,x): for i in range(1,x): if a+b+c+d+e+f+g+h == 9: print "%d %d %d %d %d %d %d %d " % (a,b,c,d,e,f,g,h) 但是輸出結果有重複 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 --------------------- 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 請問要如何排除? 希望也可以排除 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 這種組合 謝謝 2 1 1 1 1 1 1 1 -- 推 kkessherry:總之南極發生啥事都人類幹的啦就對了?? 02/26 19:34 推 NicoRobin26:企鵝:不然怪拎北喔? 02/26 19:34 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.113.126.177

11/02 11:15, , 1F
*1, 2 和 2, *1 為什麼算是一樣?
11/02 11:15, 1F

11/02 11:19, , 2F
抱歉因為有特殊需求@@" 我想用程式輔助我其他課業上的問題
11/02 11:19, 2F
0-------- --------0 把第2個 轉180度 就跟第一個相同 ^^" ※ 編輯: sofaly 來自: 120.113.126.177 (11/02 11:20)

11/02 11:30, , 3F
你的變數i是拿來做什麼的?
11/02 11:30, 3F

11/02 11:40, , 4F
我要從9個變數 算到 三個變數 所以全都先打上去
11/02 11:40, 4F

11/02 11:41, , 5F
這是 有八個變數 的程式.. 因為想說能用就好 呵呵
11/02 11:41, 5F
我找到堪用的方法@@" x=4 list2 = [ ] for a in range(1,x): for b in range(1,x): for c in range(1,x): for d in range(1,x): for e in range(1,x): for f in range(1,x): for g in range(1,x): for h in range(1,x): for i in range(1,x): if a+b+c+d+e+f+g == 9: list1=["%d %d %d %d %d %d %d " % (a,b,c,d,e,f,g)] for i in list1: if not i in list2: list2.append(i) print list2 輸出 ['1 1 1 1 1 1 3 ', '1 1 1 1 1 2 2 ', '1 1 1 1 1 3 1 ', '1 1 1 1 2 1 2 ', '1 1 1 1 2 2 1 ', '1 1 1 1 3 1 1 ', '1 1 1 2 1 1 2 ', '1 1 1 2 1 2 1 ', '1 1 1 2 2 1 1 ', '1 1 1 3 1 1 1 ', '1 1 2 1 1 1 2 ', '1 1 2 1 1 2 1 ', '1 1 2 1 2 1 1 ', '1 1 2 2 1 1 1 ', '1 1 3 1 1 1 1 ', '1 2 1 1 1 1 2 ', '1 2 1 1 1 2 1 ', '1 2 1 1 2 1 1 ', '1 2 1 2 1 1 1 ', '1 2 2 1 1 1 1 ', '1 3 1 1 1 1 1 ', '2 1 1 1 1 1 2 ', '2 1 1 1 1 2 1 ', '2 1 1 1 2 1 1 ', '2 1 1 2 1 1 1 ', '2 1 2 1 1 1 1 ', '2 2 1 1 1 1 1 ', '3 1 1 1 1 1 1 '] ※ 編輯: sofaly 來自: 120.113.126.177 (11/02 12:44) 不知道有沒有問題@@" ※ 編輯: sofaly 來自: 120.113.126.177 (11/02 12:44)

11/02 13:00, , 6F
11/02 13:00, 6F

11/02 13:15, , 7F
世界奇觀...
11/02 13:15, 7F

11/02 13:19, , 8F
謝謝
11/02 13:19, 8F
抱歉可提示一下第2個問題嗎 先把 '1 1 1 1 1 1 3'跟'1 1 1 1 3 1 1' 打散(?) 然後排序 再封裝 再去比對重複? ※ 編輯: sofaly 來自: 120.113.126.177 (11/02 13:36)

11/02 14:01, , 9F
你到底要排除哪幾種? '1 1 1 1 1 1 3'跟
11/02 14:01, 9F

11/02 14:01, , 10F
'1 1 1 1 3 1 1'也是要排除的嗎?
11/02 14:01, 10F

11/02 14:13, , 11F
是的 所有包含 六個1 加 一個3 都算重複
11/02 14:13, 11F

11/02 14:15, , 12F
那 '1 1 1 1 1 2 2' 與 '1 1 2 2 1 1 1' 呢?
11/02 14:15, 12F

11/02 14:19, , 13F
相同@@"
11/02 14:19, 13F

11/02 14:20, , 14F
所以你要的就是八個正整數加總為九的"組合"的意思?
11/02 14:20, 14F

11/02 14:20, , 15F
請等等 我上傳圖片
11/02 14:20, 15F

11/02 14:24, , 16F
11/02 14:24, 16F

11/02 14:25, , 17F
我在計算機構設計 所以 兩個圖轉動或翻轉一下 就相同
11/02 14:25, 17F

11/02 14:26, , 18F
要排除.....謝謝各位 我找資料好像很複雜 我用人工的好了
11/02 14:26, 18F

11/02 14:27, , 19F
= = 左邊的箭頭畫錯....請見諒
11/02 14:27, 19F

11/02 14:42, , 20F
只是翻轉或旋轉不要? 所以像是 '1 3 1 3' 與 '1 3 3 1'
11/02 14:42, 20F

11/02 14:42, , 21F
視為不同 但 '1 3 3 1'與 '1 1 3 3', '3 1 1 3'
11/02 14:42, 21F

11/02 14:43, , 22F
'3 3 1 1' 視為相同?
11/02 14:43, 22F

11/02 14:47, , 23F
= = 您說得好像對... 我再研究看看 謝謝
11/02 14:47, 23F

11/02 14:48, , 24F
抱歉是我想的太簡單 打擾各位
11/02 14:48, 24F
文章代碼(AID): #1GapcgQs (Python)
討論串 (同標題文章)
文章代碼(AID): #1GapcgQs (Python)