一个口袋中放有15个球,已经知道其中3个红的,6个白的,6个黑的,现从中任取8个,问共有多少种可能的颜色搭配?
下面直接上代码:
########################
if __name__=="__main__":
# 红球h的取值范围为[0,3],因此白球b的取值范围为[0,6],黑球的个数小于等于6,即 8-h-b≤6
print("\t 红球 \t 白球 \t 黑球")
print('#'*25) #用#号分割一下
n = 0
for h in range(0, 4):
for b in range(0, 7):
if 8-h-b <= 6 and 8-h-b>=0:
n += 1
print("%2d: %d \t\t %d \t\t %d" %(n, h, b, 8-h-b))
########################
执行结果如下:
红球 白球 黑球
#########################
1: 0 2 6
2: 0 3 5
3: 0 4 4
4: 0 5 3
5: 0 6 2
6: 1 1 6
7: 1 2 5
8: 1 3 4
9: 1 4 3
10: 1 5 2
11: 1 6 1
12: 2 0 6
13: 2 1 5
14: 2 2 4
15: 2 3 3
16: 2 4 2
17: 2 5 1
18: 2 6 0
19: 3 0 5
20: 3 1 4
21: 3 2 3
22: 3 3 2
23: 3 4 1
24: 3 5 0
上面的情况也可以用下面的FOR循环来实现,语句更简洁:
########################
print("红球 白球 黑球")
print('-' * 12) # 用#号分割一下
for h in range(0, 4):
for b in range(0, 7):
for n in range(0,7):
if n + h + b==8: # 红球h,白球b,黑球n
print(" %d %d %d" % (h, b, n,))
########################
执行结果如下:
红球 白球 黑球
------------
0 2 6
0 3 5
0 4 4
0 5 3
0 6 2
1 1 6
1 2 5
1 3 4
1 4 3
1 5 2
1 6 1
2 0 6
2 1 5
2 2 4
2 3 3
2 4 2
2 5 1
2 6 0
3 0 5
3 1 4
3 2 3
3 3 2
3 4 1
3 5 0
________________END______________
网友评论