鱼C论坛

 找回密码
 立即注册
查看: 3118|回复: 30

[技术交流] Python:每日一题 151

[复制链接]
发表于 2018-2-9 09:42:45 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 冬雪雪冬 于 2018-2-14 20:19 编辑

我们的玩法做了一下改变:

1. 楼主不再提供答案。
2. 请大家先独立思考”,再参考其他鱼油的解答,这样才有助于自己编程水平的提高。
3. 鼓励大家积极答题,奖励的期限为出题后24小时内。
4. 根据答案的质量给予1~3鱼币的奖励。

题目:
在九宫格中填入0~8共9个数字,例如:
0.jpg

我们发现,三行从左往右值是递增的
1.jpg

三列也是
2.jpg

三条斜线也是(左上到右下和右上到左下)
3.jpg

4.jpg

满足这些要求的排列都有哪些呢?
以这样的输出表示:
0 1 2
3 4 5
6 7 8


本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-9 10:26:59 | 显示全部楼层
本帖最后由 冰封雪舞 于 2018-2-9 10:31 编辑

进过反复推敲,因为只有0-8这9个数字,因为只有9个数字,所以你每一行只要随便换一个数字位置,第二幅图片都无法满足,只能整行换,而整行换的话第三幅图片又给限制死了,所以只有一种排列方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-9 10:42:45 From FishC Mobile | 显示全部楼层
#!/usr/bin/python
from itertools import permutations

for i in permutations(list(range(9)),9):
        if i[0]<i[1]<i[2] and i[3]<i[4]<i[5] and i[6]<i[7]<i[8]\
        and i[0]<i[3]<i[6] and i[1]<i[4]<i[7] and i[2]<i[5]<i[8]\
        and i[0]<i[4]<i[8] and i[1]<i[5] and i[3]<i[7]\
        and i[2]<i[4]<i[6] and i[1]<i[3] and i[5]<i[7]:
                print(i[0],i[1],i[2])
                print(i[3],i[4],i[5])
                print(i[6],i[7],i[8])
                print()

##  没有什么好办法,and用太多了
##  算出来有4种组合。

0 1 2
3 4 5
6 7 8

0 1 2
3 4 6
5 7 8

0 1 3
2 4 5
6 7 8

0 1 3
2 4 6
5 7 8

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-9 11:49:00 | 显示全部楼层
#太暴力了,要跑好久,辛苦版主!向大家请教学习更好的方法!

for a0 in range(9):
        for a1 in range(9):
                for a2 in range(9):
                        for a3 in range(9):
                                for a4 in range(9):
                                        for a5 in range(9):
                                                for a6 in range(9):
                                                        for a7 in range(9):
                                                                for a8 in range(9):
                                                                        #如果格子内数字可以重复,请把下面一行删除,然后整体缩进一层
                                                                        if a0 != a1 != a2 != a3 != a4 != a5 != a6 != a7 != a8:
                                                                                if a2 > a1> a0 and a5 > a4 > a3 and a8 > a7 > a6:
                                                                                        if a6 > a3> a0 and a7 > a4 > a1 and a8 > a5 > a2:
                                                                                                if a5 > a1 and a8 > a4 > a0 and a7 > a3 :
                                                                                                        if a7 > a5 and a6 > a4 > a2 and a3 > a1 :
                                                                                                                list1 = [a0,a1,a2]
                                                                                                                list2 = [a3,a4,a5]
                                                                                                                list3 = [a6,a7,a8]
                                                                                                                print(list1)
                                                                                                                print(list2)
                                                                                                                print(list3)
                                                                                                                print('我是分割线--------------')

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-9 12:16:05 | 显示全部楼层
import operator
def list1():
    for a in range(0,9):
        for b in range(1,9):
            for c in range(1,9):
                if a<b and b<c:
                    yield([a,b,c])
def list2():
    for a in range(0,9):
        for b in range(1,9):
            for c in range(1,9):
                if a<b and b<c:
                    yield([a,b,c])
def list3():
    for a in range(0,9):
        for b in range(1,9):
            for c in range(1,9):
                if a<b and b<c:
                    yield([a,b,c])
for i in list1():
    for j in list2():
        for k in list3():
            if i[0] not in j and i[1] not in j and i[2] not in j:
                if i[0] not in k and i[1] not in k and i[2] not in k:
                    if j[0] not in k and j[1] not in k and j[2] not in k:
                        if i[0]<j[1] and i[1]<j[2] and j[0]<k[1] and j[1]<k[2]:
                            if i[1]<j[0] and i[2]<j[1] and j[1]<k[0] and j[2]<k[1]: 
                                if operator.lt(i,j) and operator.lt(j,k):
                                    print(i,j,k)
                

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-9 14:58:40 | 显示全部楼层
'''
    list9个元素,左到右验证
'''
def LeftToRight(arg):
    if(type(arg) == list and arg.__len__() == 9):
        for i in range(0, 3):
            i1 = 3 * i
            i2 = 3 * i + 1
            i3 = 3 * i + 2
            if not (arg[i1] < arg[i2] and arg[i2] < arg[i3]):
                return False
        return True
    return False

'''
    list9个元素,上到下验证
'''
def UpToDown(arg):
    if(type(arg) == list and arg.__len__() == 9):
        for i in range(0, 3):
            i1 = i
            i2 = 3 * 1 + i
            i3 = 3 * 2 + i
            if not (arg[i1] < arg[i2] and arg[i2] < arg[i3]):
                return False
        return True
    return False

'''
    list9个元素,左上到右下验证
'''
def LeftUptoRightDown(arg):
    if(type(arg) == list and arg.__len__() == 9):
        '''# 判断第0,1,3格'''
        for i in range(0, 4): 
            if 2 == i:
                continue
            elif 0 == i:
                i1 = i
                i2 = 4 * 1 + i
                i3 = 4 * 2 + i
                if not (arg[i1] < arg[i2] and arg[i2] < arg[i3]):
                    return False
            else :
                i1 = i
                i2 = 4 * 1 + i
                if not arg[i1] < arg[i2]:
                    return False
        return True
    return False

'''
    list9个元素,右上到左下验证
'''
def RightUptoLeftDown(arg):
    if(type(arg) == list and arg.__len__() == 9):
        '''# 判断第1,2,5格'''
        for i in range(1, 6): 
            if 3 == i or 4 == i:
                continue
            elif 2 == i:
                i1 = i
                i2 = i + 2 * 1
                i3 = i + 2 * 2
                if not(arg[i1] < arg[i2] and arg[i2] < arg[i3]):
                    return False
            else :
                i1 = i
                i2 = i + 2 * 1
                if not arg[i1] < arg[i2]:
                    return False
        return True
    return False

'''
    list 放入ix判断:
    ①存在ix元素,不操作
    
    ②list达到9个元素(认为0-8都放入list了)时,
      判断是否以上符合4个函数返回为Ture条件
'''
def ListAppend(arg, ix):
    status = False
    if(type(arg) == list and type(ix) == int and arg.__len__() < 9):
        if 0 == alist.count(ix):
            alist.append(ix)
            status = True

    if(type(arg) == list and arg.__len__() == 9):
        if(LeftToRight(alist) and UpToDown(alist) and LeftUptoRightDown(alist) and RightUptoLeftDown(alist)):
            print('=============================')
            count = 0
            for i in alist:
                print(i, end = '')
                count += 1
                if(count % 3 == 0):
                    print('')
    return status

'''
    递归插入数据,
    arg为list
    ix表示要插入的元素个数
    插入元素为0-8之间的数,数字不会重复插入
'''
def LoopListAppend(arg, ix):
    if(type(arg) == list and type(ix) == int):
        if(ix <= 0):
            return None
        else:
            for i in range(0,9):
                if ListAppend(arg, i):
                    LoopListAppend(arg, ix -1)
                    arg.remove(i)
    

alist= list()
LoopListAppend(alist, 9)
使用的方法为枚举所有组合,然后一个个组合判断是否符合条件。(方法比较笨拙,看看其他鱼友有没有好的想法学习学习)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-9 16:36:09 | 显示全部楼层
def show(t):
    length = len(t)
    for i in range(length):
        print(t[i],end=' ')
        if i % 3 == 2:
            print()
    print()

t = [x for x in range(9)]
show(t)
t[5],t[6]=t[6],t[5]
show(t)
t[2],t[3]=t[3],t[2]
show(t)
t[5],t[6]=t[6],t[5]
show(t)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-9 17:12:31 | 显示全部楼层
本帖最后由 塔利班 于 2018-2-9 17:14 编辑

首先说下我的代码好蠢,是无脑流,前半部分是生成所有可能的列表组合,我应该是把内存搞出存贮边界了,因为这样会有9!=362880个。。但是如果分析逻辑来说a<b<(c,d可换)<e<(f,g可换)<i,这样结果应该就是4种情况了即0,1,4,7,8不变,2,3可互换,5,6可互换,但是我是按纯懒人思维写的。。也许会让电脑整好一会儿
A=range(9)
L=[]
for a in A:
    for b in A:
        for c in A:
            for d in A:
                for e in A:
                    for f in A:
                        for g in A:
                            for h in A:
                                for i in A:
                                    l=[a,b,c,d,e,f,g,h,i]
                                    if len(l)==9:
                                        L.append([[a,b,c],[d,e,f],[g,h,i]])
for each in L:
    [[a,b,c],[d,e,f],[g,h,i]]=each
    if a<b<c and d<e<f and g<h<i and a<d<g and b<e<h and c<f<i and a<e<i and b<f and d<h and b<d and c<e<g and f<h :
        for eachline in each:
            print(eachline)
        print('--------')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-9 17:20:17 | 显示全部楼层
希望有朝一日我也能加入这个帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-9 19:56:16 | 显示全部楼层
#自己推断的,可以把答案告诉我吗。。用Python不会写
def main():
    print("NO.1",end = '->')
    print('''
    0 1 2
    3 4 6
    5 7 8''')
    print("--------------------")
    print('NO.2',end = '->')
    print('''
    0 1 3
    2 4 6
    5 7 8''')
    print('---------------------')
    print('NO.3',end = '->')
    print('''
    0 1 2
    3 4 5
    6 7 8''')
    print('---------------------')
    print('NO.4',end = '->')
    print('''
    0 1 3
    2 4 5
    6 7 8''')
main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-9 23:04:20 | 显示全部楼层
L1 = [0,1,0]
L2 = [0,4,0]
L3 = [0,7,8]
for i in range(2,4):
    L1[2] = i
    if L1[2] == 2:
        L2[0] = 3
    elif L1[2] == 3:
        L2[0] = 2
    for j in range(5,7):
        L3[0] = j
        if L3[0] == 5:
            L2[2] = 6
        elif L3[0] == 6:
            L2[2] = 5

        print(L1[0],L1[1],L1[2])

        print(L2[0],L2[1],L2[2])

        print(L3[0],L3[1],L3[2])
        print()

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-10 08:46:21 | 显示全部楼层
很直观的想法,排列全试一遍,
规律就不找了,直接按题目定规则

字符串是根据Unicode码比大小的
from itertools import permutations

rule1 = lambda lst: all(lst[0+i] < lst[1+i] < lst[2+i] for i in range(0,7,3))
rule2 = lambda lst: all(lst[i] < lst[i+3] <lst[i+6] for i in range(3))
rule3 = lambda lst: all(lst[i] < lst[i+4] for i in (0,1,3,4))
rule4 = lambda lst: all(lst[i] < lst[i+2] for i in (1,2,4,5))

for i in permutations('123456780'):
    if rule1(i) and rule2(i) and rule3(i) and rule4(i):
        for j in range(3):
            print(*i[3*j: 3*j+3])
        print()

##0 1 2
##3 4 5
##6 7 8
##
##0 1 2
##3 4 6
##5 7 8
##
##0 1 3
##2 4 5
##6 7 8
##
##0 1 3
##2 4 6
##5 7 8

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-10 09:06:04 | 显示全部楼层
print(1, 2, 3)
print(4, 5, 6)
print(7, 8, 9)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-10 16:23:44 | 显示全部楼层
import numpy as np
import itertools
i=0
j=0
count=0
list2=[]
for list1 in itertools.permutations([0,1,2,3,4,5,6,7,8],9):
    x=np.asarray(list1).reshape(3,3)
    
    if x[0][0]<x[0][1]<x[0][2] and x[0][0]<x[1][0]<x[2][0] and x[0][0]<x[1][1]<x[2][2] and x[0][1]<x[1][2] and x[1][0]<x[2][1] and x[0][2]<x[1][1]<x[2][0] and x[0][1]<x[1][0]and x[1][2]<x[2][1] :
         if x[1][0]<x[1][1]<x[1][2] and x[0][1]<x[1][1]<x[2][1] :
             if x[2][0]<x[2][1]<x[2][2] and x[0][2]<x[1][2]<x[2][2] :
                 for i in x:
                     print(i)
                     count+=1
                     if count==3:
                         print("                       ")
                         count=0
                     
            
                    
                
                
            
  
    
          

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-10 17:44:56 | 显示全部楼层
list1 = []
for a in range(1, 4):
    list1.append(a)
list2 = []
for b in range(4, 7):
    list2.append(b)
list3 = []
for c in range(7, 10):
    list3.append(c)
l3 = str(list3).strip('[]')
l2 = str(list2).strip('[]')
l1 = str(list1).strip('[]')

item = (l1, l2, l3)
for i in item:
    print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-10 18:02:36 | 显示全部楼层
好难啊,虽然自己分析一下结果就出来了,可是不知道怎么编程实现,好不容易实现了,但用得方法实在太复杂,只能处理2*2,3*3的,再大就处理不了了。
等高手的答案。智商还是不够用……
def is_ordering(list1):
    for sub in list1:
        for i in range(len(sub)-1):
            if sub[i+1] <= sub[i]:
                return False
    else:
        return True


def col_trans(list1):
    l = len(list1)
    w = len(list1[0])
    tmp = [[0 for i in range(l)] for i in range(w)]         
    for i in range(l):
        for j in range(w):
            tmp[j][i] = list1[i][j]
    return tmp


# list1是一个行列相等的二维列表, direction是列表旋转方向,True为逆时针旋转90度,False为顺时针旋转90度,为了题目从后往前取
def rotate(list1, direction):
    l = len(list1)
    n = 2*l-1
    tmp = []
    if direction:
        for i in range(l):
            tmp.append([list1[j][l - 1 - (i - j)] for j in range(i + 1)])
        for i in range(n-l):
            tmp.append([list1[j + i + 1][j] for j in range(n - l - i)])
        return tmp
    else:
        for i in range(l):
            tmp.append([list1[j][i - j] for j in range(i + 1)])
        for i in range(n-l):
            tmp.append([list1[j + i + 1][l - 1 - j] for j in range(n - l - i)])
        return tmp


from itertools import permutations

perms = list(permutations(range(9), 9))
for per in perms:
    n = round(len(perms[0]) ** 0.5)
    tmp = [per[j * n:j * n + n] for j in range(len(per) // n)]
    if is_ordering(tmp) and is_ordering(col_trans(tmp)) and \
            is_ordering(rotate(tmp, True)) and is_ordering(rotate(tmp, False)):
        print(tmp)

结果:
[(0, 1, 2), (3, 4, 5), (6, 7, 8)]
[(0, 1, 2), (3, 4, 6), (5, 7, 8)]
[(0, 1, 3), (2, 4, 5), (6, 7, 8)]
[(0, 1, 3), (2, 4, 6), (5, 7, 8)]

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-10 20:00:30 From FishC Mobile | 显示全部楼层
#刚学python不久,在手机上写,代码有点乱
#a b c
#d e f
#g h i

for a in range(9):
    for b in range(9):
        if b!=a:
            for c in range(9):
                if c!=b and c!=a:
                    for d in range(9):
                        if d!=c and d!=b and d!=a:
                            for e in range(9):
                                if e!=d and e!=c and e!=b and e!=a:
                                    for f in range(9):
                                        if f!=e and f!=d and f!=c and f!=b and f!=a:
                                            for g in range(9):
                                                if g!=f and g!=e and g!=d and g!=c and g!=b and g!=a:
                                                    for h in range(9):
                                                        if h!=g and h!=f and h!=e and h!=d and h!=c and h!=b and h!=a:
                                                            for i in range(9):
                                                                if i!=h and i!=g and i!=f and i!=e and i!=d and i!=c and i!=b and i!=a:
                                                                    if c-a==2*(b-a)==2*(c-b)==f-d==2*(e-d)==2*(f-e)==i-g==2*(h-g)==2*(i-h):
                                                                        if g-a==2*(d-a)==2*(g-d)==h-b==2*(e-b)==2*(h-e)==i-c==2*(f-c)==2*(i-f):
                                                                            if i-a==2*(e-a)==2*(i-e)==2*(f-b)==2*(h-d):
                                                                                if g-c==2*(e-c)==2*(g-e)==2*(d-b)==2*(h-f):
                                                                                    print('%d %d %d\n%d %d %d\n%d %d %d\n'%(a,b,c,d,e,f,g,h,i))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-10 23:24:49 | 显示全部楼层
可以暴力破解吗,我只会暴力破解
a = [0,0,0,0,0,0,0,0,0]

for i in range(9):
        a[0]=i
        for i in range(9):
                a[1]=i
                for i in range(9):
                        a[2]=i
                        for i in range(9):
                                a[3]=i
                                for i in range(9):
                                        a[4]=i
                                        for i in range(9):
                                                a[5]=i
                                                for i in range(9):
                                                        a[6]=i
                                                        for i in range(9):
                                                                a[7]=i
                                                                for i in range(9):
                                                                        a[8]=i
                                                                        if len(a)==len(set(a)):
                                                                                        if a[0]<a[1]<a[2] and a[3]<a[4]<a[5] and a[6]<a[7]<a[8]:
                                                                                                if a[0]<a[3]<a[6] and a[1]<a[4]<a[7] and a[2]<a[5]<a[8]:
                                                                                                        if a[0]<a[4]<a[8] and a[1]<a[5] and a[3]<a[7]:
                                                                                                                if a[2]<a[4]<a[6] and a[1]<a[3] and a[5]<a[7]:
                                                                                                                        print(a[0],a[1],a[2])
                                                                                                                        print(a[3],a[4],a[5])
                                                                                                                        print(a[6],a[7],a[8],"\n")
草图.png

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-11 00:10:27 | 显示全部楼层
本帖最后由 天圆突破 于 2018-2-11 08:57 编辑
'''
使用列表来存储信息
lst[0]  lst[1]  lst[2]
lst[3]  lst[4]  lst[5]
lst[6]  lst[7]  lst[8]

规则写成条件:
lst[0] < lst[1] < lst[2] and lst[3] < lst[4] < lst[5] and lst[6] < lst[7] < lst[8] and lst[0] < lst[3] < lst[6] and lst[1] < lst[4] < lst[7] and lst[2] < lst[5] < lst[8] and lst[0] < lst[4] < lst[8] and lst[3] < lst[7] and lst[1] < lst[5] and lst[2] < lst[4] < lst[6] and lst[1] < lst[3] and lst[5] < lst[7]

算法分析:
0一定要在lst[0],因为没有比0更小的数字
8一定要在lst[8],以为没有比8更大的数字
1一定要在lst[1],因为这个位置必须是第二小的位置(其他位置都要有一个除了0以外比它小的数字)
7一定要在lst[7],因为这个位置必须是第二大的位置(其他位置都要有一个除了8以外比它大的数字)
以上四个位置在任何时候必须固定

数字2有两种情况,lst[2]和lst[3],在其他任何位置都会违反规则(易证,略)
数字6有两种情况,lst[5]和lst[6],在其他任何位置都会违反规则(易证,略)

以上固定了:lst = [0, 1, x, x, x, ,x ,x ,7 ,8]
因为数字2有2种情况,数字6有两种情况,合计4个分支
再需要判断3、4、5即可,一共只有2*2*6=24情况,交给程序验证
剩下的就是打字的体力活了
算法分析结束
'''
def middle(lst_temp):
    temp = [3, 4, 5]
    temp1 = [(i, j, k) for i in temp for j in temp for k in temp if i != j and j != k and i != k]
    flag =  [x for x in range(8) if lst_temp[x] == None]
    for each in temp1:
        lst = lst_temp.copy()
        lst[flag[0]], lst[flag[1]], lst[flag[2]] = each
        if lst[0] < lst[1] < lst[2] and lst[3] < lst[4] < lst[5] and lst[6] < lst[7] < lst[8] and lst[0] < lst[3] < lst[6] and lst[1] < lst[4] < lst[7] and lst[2] < lst[5] < lst[8] and lst[0] < lst[4] < lst[8] and lst[3] < lst[7] and lst[1] < lst[5] and lst[2] < lst[4] < lst[6] and lst[1] < lst[3] and lst[6] < lst[7]:
            print('%d %d %d\n%d %d %d\n%d %d %d'%tuple(lst))
            print('*'*5)

def case6(lst):
    for i in range(2):
        if i == 0:
            lst_temp = lst.copy()
            lst_temp[6] = 6
            middle(lst_temp)
        elif i == 1:
            lst_temp = lst.copy()
            lst_temp[5] = 6
            middle(lst_temp)

def nine():
    lst = [None for i in range(9)]
    lst[0] = 0; lst[1] = 1; lst[7] = 7; lst[8] = 8
    for i in range(2):
        if i == 0:
            lst_temp = lst.copy()
            lst_temp[2] = 2
            case6(lst_temp)
        if i == 1:
            lst_temp = lst.copy()
            lst_temp[3] = 2
            case6(lst_temp)

if __name__ == '__main__':
    nine()
jiugongge.jpg

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-11 19:55:29 | 显示全部楼层
for a1 in range(9):
     for a2 in range(9):
         for a3 in range(9):
             for a4 in range(9):
                 for a5 in range(9):
                     for a6 in range(9):
                         for a7 in range(9):
                             for a8 in range(9):
                                 for a9 in range(9):
                                    if (a1<a2)and(a2<a3)and(a4<a5)and(a5<a6)\
and(a7<a8)and(a8<a9)and(a1<a4)and(a4<a7)and(a2<a5)and(a5<a8)and(a3<a6)and(a6<a9)\
and(a1<a5)and(a5<a9)and(a2<a6)and(a4<a8)and(a2<a4)and(a3<a5)and(a5<a7)and(a6<a8)\
and(a3!=a4)and(a6!=a7):
                                        print(a1,a2,a3)
                                        print(a4,a5,a6)
                                        print(a7,a8,a9)
                                        print('=============')
                                    
                                    
      

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-10 21:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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