Python 小白求助
- 安乃金想用python 弄个双色球随机程序,现学现弄,一个多礼拜了也弄成,恳请出手相助。
问题如下,
我把33个红球分成了八组,即
(01,07,21,22),(08,09,23,24),(02,10,26,27),(11,12,28,29),
(03,13,31,32),(14,15,20,25),(05,06,18,19),(04,16,17,30,33)。
我想随机得到六个数字,但是这六个数字要包含在上面的四到五组内,不能多于也不能少于四到五组。
请问如何用python 实现。 - ouyuu简单点操作:
1,随机6个数
2,计算6个数在8个分组中占据的分组数
3,如果分组数为4或5,break,反之continue - xzap把这些分组合并成一个大组,然后random.sample(大组,random.randint(4,5))选出4或5组。然后用for遍历每组用random.choice选一个数。最后合并组再随机出一两个数就可以了
- xzap复制代码
- import random
- ok=[]
- a=[["01","07","21","22"],["08","09","23","24"],["02","10","26","27"],["11","12","28","29"],["03","13","31","32"],["14","15","20","25"],["05","06","18","19"],["04","16","17","30","33"]]
- b = random.randint(4,5)
- c = random.sample(a,b)
- c2 = []
- for i in c :
- d = random.choice(i)
- ok.append(d)
- i.remove(d)
- c2 += i
- for i in range(6-b):
- e = random.choice(c2)
- c2.remove(e)
- ok.append(e)
- print (",".join(ok))
- import random
- 安乃金万分感谢,礼拜天可以实战几注啦,哈哈。
以这个为基础,以后可以琢磨加上一些其它想法。
再次感谢。 - cookite_li马个克。 还是没看明白哪步能保证 4到5组。
- cookite_li另外, 楼主, 你这么分8组是基于什么考虑?分享下不?
- xzap
- gwgb分8组 的依据? iOS fly ~
- wenxisyt不管你怎么随机,也改变不了随机的概率。