美文网首页自学编程Python日更成长营
自学Python:求解三色球问题

自学Python:求解三色球问题

作者: 小强聊成长 | 来源:发表于2021-11-23 12:28 被阅读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______________

    相关文章

      网友评论

        本文标题:自学Python:求解三色球问题

        本文链接:https://www.haomeiwen.com/subject/ikcbtrtx.html