gzj137070928 发表于 2020-10-13 10:53:03

颜色搭配问题(概率)

# 有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。
# 先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
# 参考示例
print('Red\tYellow\tGreen')
for red in range(4):
    for yellow in range(4):
      for green in range(2,7):
            if red + yellow +green == 8:
                print('', red, '\t', '', yellow, '\t', '', green)

冬雪雪冬 发表于 2020-10-13 11:05:21

挺好,可以再优化去掉一重循环。

gzj137070928 发表于 2020-10-13 11:19:22

冬雪雪冬 发表于 2020-10-13 11:05
挺好,可以再优化去掉一重循环。

多谢版主指导{:5_108:}{:5_95:}
优化版如下:
print('Red\tYellow\tGreen')
for red in range(4):
    for yellow in range(4):
      green = 8 - red - yellow
      if green <= 6:
            print('', red, '\t', '', yellow, '\t', '', green)

冬雪雪冬 发表于 2020-10-13 14:00:24

gzj137070928 发表于 2020-10-13 11:19
多谢版主指导
优化版如下:

还可以再减少循环次数。
print('Red\tYellow\tGreen')
for red in range(4):
    for yellow in range(max(8 - 6 - red, 0), 4):
      green = 8 - red - yellow
      print('', red, '\t', '', yellow, '\t', '', green)

gzj137070928 发表于 2020-10-13 14:05:49

冬雪雪冬 发表于 2020-10-13 14:00
还可以再减少循环次数。

多谢多谢,学习啦
页: [1]
查看完整版本: 颜色搭配问题(概率)