作者sofaly (沙發椅)
看板Python
標題[問題] 排除輸出重複數值的方法
時間Fri Nov 2 11:10:30 2012
各位好
程式 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
1F:→ kdjf:*1, 2 和 2, *1 為什麼算是一樣? 11/02 11:15
2F:→ sofaly:抱歉因為有特殊需求@@" 我想用程式輔助我其他課業上的問題 11/02 11:19
0--------
--------0 把第2個 轉180度 就跟第一個相同 ^^"
※ 編輯: sofaly 來自: 120.113.126.177 (11/02 11:20)
3F:→ mikapauli:你的變數i是拿來做什麼的? 11/02 11:30
4F:→ sofaly:我要從9個變數 算到 三個變數 所以全都先打上去 11/02 11:40
5F:→ sofaly:這是 有八個變數 的程式.. 因為想說能用就好 呵呵 11/02 11:41
我找到堪用的方法@@"
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)
7F:→ uranusjr:世界奇觀... 11/02 13:15
8F:→ sofaly:謝謝 11/02 13:19
抱歉可提示一下第2個問題嗎
先把 '1 1 1 1 1 1 3'跟'1 1 1 1 3 1 1'
打散(?) 然後排序 再封裝 再去比對重複?
※ 編輯: sofaly 來自: 120.113.126.177 (11/02 13:36)
9F:→ birdhackor:你到底要排除哪幾種? '1 1 1 1 1 1 3'跟 11/02 14:01
10F:→ birdhackor:'1 1 1 1 3 1 1'也是要排除的嗎? 11/02 14:01
11F:→ sofaly:是的 所有包含 六個1 加 一個3 都算重複 11/02 14:13
12F:→ birdhackor:那 '1 1 1 1 1 2 2' 與 '1 1 2 2 1 1 1' 呢? 11/02 14:15
13F:→ sofaly:相同@@" 11/02 14:19
14F:→ birdhackor:所以你要的就是八個正整數加總為九的"組合"的意思? 11/02 14:20
15F:→ sofaly:請等等 我上傳圖片 11/02 14:20
17F:→ sofaly:我在計算機構設計 所以 兩個圖轉動或翻轉一下 就相同 11/02 14:25
18F:→ sofaly:要排除.....謝謝各位 我找資料好像很複雜 我用人工的好了 11/02 14:26
19F:→ sofaly:= = 左邊的箭頭畫錯....請見諒 11/02 14:27
20F:→ birdhackor:只是翻轉或旋轉不要? 所以像是 '1 3 1 3' 與 '1 3 3 1' 11/02 14:42
21F:→ birdhackor:視為不同 但 '1 3 3 1'與 '1 1 3 3', '3 1 1 3' 11/02 14:42
22F:→ birdhackor:'3 3 1 1' 視為相同? 11/02 14:43
23F:→ sofaly:= = 您說得好像對... 我再研究看看 謝謝 11/02 14:47
24F:→ sofaly:抱歉是我想的太簡單 打擾各位 11/02 14:48