自学编程Python日更成长营

自学Python:求解三色球问题

2021-11-23  本文已影响0人  小强聊成长

一个口袋中放有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______________

上一篇 下一篇

猜你喜欢

热点阅读