鱼C论坛

 找回密码
 立即注册
查看: 1728|回复: 5

[已解决]python福彩复试求助

[复制链接]
发表于 2021-10-26 19:39:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 akai735 于 2021-10-26 19:42 编辑

太暴力了有没有简洁点的办法
如果是指定的数字不是又要在写一个
nsum=[2,5,9,11,15,16,18,22,25,26,30,35,36,39,44,45,47,49,52,55,56,61,64,68,72,75,80]
n=int(input("复试:"))
list_2=[]
list_1=[]
print('共计:',len(nsum),'码')
mum=1
while mum<len(nsum):
    x=0
    while x<10000:
        list_3=[]
        for i in nsum:
            if len(nsum)==n:
                b=nsum[:]
                list_1.append(b)
                nsum.pop(0)
            elif len(nsum)<n:
                b=nsum.pop(0)
                list_2.append(b)
            elif len(list_3)<n:
                list_3.append(i)
            elif list_3 not in list_1:
                list_1.append(list_3)
                b=nsum.pop(1)
                list_2.append(b)
                continue
        x=x+1
    l=1
    while l<10000:
        list_3=[]
        for j in list_2:
            if len(list_2)==n:
                b=list_2[:]
                list_1.append(b)
                list_2.pop(0)
            elif len(list_2)<n:
                b=list_2.pop(0)
                nsum.append(b)
            elif len(list_3)<n:
                list_3.append(j)
            elif list_3 not in list_1:
                list_1.append(list_3)
                b=list_2.pop(1)
                nsum.append(b)
                continue
        l=l+1
    mum=mum+1
print('共计组:',len(list_1))
for exte in list_1:
    print(exte)
最佳答案
2021-10-26 21:03:10
  1. arr = [2, 5, 9, 11, 15, 16, 18, 22, 25, 26, 30, 35, 36, 39, 44, 45, 47, 49, 52, 55, 56, 61, 64, 68, 72, 75, 80]
  2. size = 9; res = []; temp = None

  3. for n, i in enumerate(arr):
  4.     temp = [i]
  5.     for j in range(n+1, len(arr)-7):
  6.         res.append(temp + arr[j:j+8])

  7. print(f"复试:{size}\n共计:{len(arr)}\n共计组:{len(res)}")

  8. for i in res:
  9.     print(i)
复制代码
屏幕截图 2021-10-26 193659.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-26 21:03:10 | 显示全部楼层    本楼为最佳答案   
  1. arr = [2, 5, 9, 11, 15, 16, 18, 22, 25, 26, 30, 35, 36, 39, 44, 45, 47, 49, 52, 55, 56, 61, 64, 68, 72, 75, 80]
  2. size = 9; res = []; temp = None

  3. for n, i in enumerate(arr):
  4.     temp = [i]
  5.     for j in range(n+1, len(arr)-7):
  6.         res.append(temp + arr[j:j+8])

  7. print(f"复试:{size}\n共计:{len(arr)}\n共计组:{len(res)}")

  8. for i in res:
  9.     print(i)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2021-10-26 21:29:41 | 显示全部楼层

谢了。你太牛了  还是没有看动 我先研究研究 谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-26 22:22:30 | 显示全部楼层
本帖最后由 yjhxjhm 于 2021-10-26 22:31 编辑

我执行了一下

复试:9
共计:27
共计组:190

谢谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-27 07:50:41 | 显示全部楼层
yjhxjhm 发表于 2021-10-26 22:22
我执行了一下

复试:9

我那有误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-27 22:31:11 | 显示全部楼层

建个新文件,将代码复制黏贴进去,保存后执行就OK了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-7 06:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表