鱼C论坛

 找回密码
 立即注册
查看: 1777|回复: 4

[已解决]请问各位大神怎么化简此代码

[复制链接]
发表于 2020-12-19 11:38:45 | 显示全部楼层 |阅读模式

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

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

x
怎么化简这个代码,不然不符合python洁简的风格
for a in range(1,10):
    for b in range(1,10):
        for c in range(1,10):
            for d in range(1,10):
                for e in range(1,10):
                    for f in range(1,10):
                        for g in range(1,10):
                            for h in range(1,10):
                                for i in range(1,10):
                                    if (a + b + c) == 15 and (a + d + g ) == 15 and (a + e + i ) == 15 and (d + e + f)==15 and (g + h + i )==15: 
                                        if a != b and a != c and a != d and a != e and a != f and a != g and a != h and a != i:
                                            if b != c and b !=  d and b != e and b != f and b != g and b != h and b != i :
                                                if c != d and c != e and c != f and c != g and c != h and c != i :
                                                    if d !=  e and d != f  and d != g  and d !=  h and d != i :
                                                        if e != f and  e != g and  e != h and  e != i :
                                                            if f !=  g and   f != h  and  f != i :
                                                                if g != h  and g != i  :
                                                                    if h !=i :
                                                                        print(a,b,c,d,e,f,g,h,i)

最佳答案
2020-12-19 14:47:05
本帖最后由 逃兵 于 2020-12-19 15:44 编辑

九宫格就满足几点
1.中点e=5
2.四个角为偶数acgi为偶数
又因为中点e必定为5
则有i=10-a,g=10-c
3.定一个角a时,只有两种写法(分别互换cg的值,对应影响到bdfh的值)
a一定为偶数,所以一共有2*4=8种解
angle = [[2,8],[4,6]]
e = 5
for num in range(len(angle)):
    for a in angle[num]:
        i = 10-a
        for c in angle[num-1]:
            g = 10-c
            b = 15-a-c
            h = 10-b
            d = 15-a-g
            f = 10-d
            print(a,b,c,d,e,f,g,h,i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-19 11:43:32 | 显示全部楼层
说说这代码是干嘛的
有点儿费眼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-19 11:51:25 | 显示全部楼层
昨非 发表于 2020-12-19 11:43
说说这代码是干嘛的
有点儿费眼

就是九宫格,横竖斜都等于15,
各个字母对应的位置分别是:
---------------------
   a     b     c

   d     e     f

   g     h     i   
----------------------
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-19 14:47:05 | 显示全部楼层    本楼为最佳答案   
本帖最后由 逃兵 于 2020-12-19 15:44 编辑

九宫格就满足几点
1.中点e=5
2.四个角为偶数acgi为偶数
又因为中点e必定为5
则有i=10-a,g=10-c
3.定一个角a时,只有两种写法(分别互换cg的值,对应影响到bdfh的值)
a一定为偶数,所以一共有2*4=8种解
angle = [[2,8],[4,6]]
e = 5
for num in range(len(angle)):
    for a in angle[num]:
        i = 10-a
        for c in angle[num-1]:
            g = 10-c
            b = 15-a-c
            h = 10-b
            d = 15-a-g
            f = 10-d
            print(a,b,c,d,e,f,g,h,i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-19 20:31:47 | 显示全部楼层
逃兵 发表于 2020-12-19 14:47
九宫格就满足几点
1.中点e=5
2.四个角为偶数acgi为偶数

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 01:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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