鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 27(答题领鱼币)

[复制链接]
发表于 2017-6-22 09:50:08 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-25 12:36:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-18 16:43:29 | 显示全部楼层
import itertools as t
count = 0
for i in t.permutations(range(1,10),9):
    a = list(i)       
    if sum(a[0:9:3]) ==  sum(a[1:9:3]) == sum(a[2:9:3]) == sum(a[0:3]) == sum(a[3:6]) == sum(a[6:9]) == sum(a[0:9:4]) == sum(a[2:7:2]):
        count+=1
        print('['+str(count)+']')
        print(' ',a[0:3])
        print(' ',a[3:6])
        print(' ',a[6:9])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 20:53:44 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-22 21:49:17 | 显示全部楼层
# For import permutations
import itertools
import numpy

s = range(1, 10)
# lst is full arrangement of [1 - 10]: 9!
lst = list(itertools.permutations(s, 9))
count = 0

for FullArrange in lst:
    if FullArrange[0] + FullArrange[3] + FullArrange[6] == 15 and \
       FullArrange[1] + FullArrange[4] + FullArrange[7] == 15 and \
       FullArrange[2] + FullArrange[5] + FullArrange[8] == 15 and \
       FullArrange[0] + FullArrange[4] + FullArrange[8] == 15 and \
       FullArrange[2] + FullArrange[4] + FullArrange[6] == 15 and \
       FullArrange[0] + FullArrange[1] + FullArrange[2] == 15 and \
       FullArrange[3] + FullArrange[4] + FullArrange[5] == 15 and \
       FullArrange[6] + FullArrange[7] + FullArrange[8] == 15:
       TmpArray = numpy.array(FullArrange)
       TmpArray = TmpArray.reshape((3, 3)) # Change the shape of the array: 3 rows and 3 columns
       count += 1
       print "#" * 20
       print FullArrange
       print TmpArray
       
print "The total number is:", count
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-20 17:38:25 | 显示全部楼层
这题有这么难吗,代码都这么长,算了,太难我就不做了,哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-2 00:59:06 | 显示全部楼层
allFifteen = [[i,j,k] for i in range(1,10) for j in range(1,10) for k in range(1,10) \
              if i!=j and j!=k and k!=i and i+j+k==15]

jiugongge = [[i,j,k] for i in allFifteen for j in allFifteen for k in allFifteen \
             if j[0] not in i and j[1] not in i and j[2] not in i and \
             j[0] not in k and j[1] not in k and j[2] not in k and \
             i[0] not in k and i[1] not in k and i[2] not in k and \
             i[0]+j[0]+k[0] == i[1]+j[1]+k[1] == i[2]+j[2]+k[2] == 15 and\
             i[0]+j[1]+k[2] == i[2]+j[1]+k[0] == 15]

for i in jiugongge:
    print('-------------------------')
    for j in i:
        print(j)


# 很多if,很暴力,但结果出来了。
>>> 
-------------------------
[2, 7, 6]
[9, 5, 1]
[4, 3, 8]
-------------------------
[2, 9, 4]
[7, 5, 3]
[6, 1, 8]
-------------------------
[4, 3, 8]
[9, 5, 1]
[2, 7, 6]
-------------------------
[4, 9, 2]
[3, 5, 7]
[8, 1, 6]
-------------------------
[6, 1, 8]
[7, 5, 3]
[2, 9, 4]
-------------------------
[6, 7, 2]
[1, 5, 9]
[8, 3, 4]
-------------------------
[8, 1, 6]
[3, 5, 7]
[4, 9, 2]
-------------------------
[8, 3, 4]
[1, 5, 9]
[6, 7, 2]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-6 16:08:09 | 显示全部楼层
看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-10 16:01:46 | 显示全部楼层
a = [(i,ii,iii) for i in range(1,10) for ii in range(1,10) for iii in range(1,10) if i!=ii and ii!=iii and i!=iii]
for x in a:
    for y in a:
        if (x[0] in y) or (x[1] in y) or (x[2] in y):
            continue
        for z in a:
            if (x[0] in z) or (x[1] in z) or (x[2] in z) or (y[0] in z) or (y[1] in z) or (y[2] in z):
                continue
            if x[2]+y[2]+z[2] ==x[1]+y[1]+z[1] == x[0]+y[0]+z[0] == sum(x) ==sum(y) ==sum(z) == x[0]+y[1]+z[2] == x[2]+y[1]+z[0]:
                print("-----")
                print(x)
                print(y)
                print(z)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 15:40:01 | 显示全部楼层
#学习了

import itertools as t
a = t.permutations(range(1,10),9)
for i in a:
    i = list(i)
    if i[0]+i[4]+i[8]==15 and i[2]+i[4]+i[6]==15 and i[0]+i[1]+i[2]==15 and i[0]+i[3]+i[6]==15:
        if i[1]+i[4]+i[7]==15 and i[3]+i[4]+i[5]==15:
            print (i)



import numpy
from itertools import permutations as pt
comb = pt(range(1,10), 9)

def check(lst):
    return True if sum(lst[0:3]) == sum(lst[3:6]) == sum(lst[6:9]) == sum(lst[0:9:3]) \
                                == sum(lst[1:9:3]) == sum(lst[2:9:3]) == sum(lst[0:9:4]) == sum(lst[2:7:2]) else False

i = 0
for each in comb:
    if check(each):
        c = numpy.array(each)
        c = c.reshape((3, 3))
        i += 1
        print ('Number %d :' % i)
        print ('')
        print (c)
        print ('')
        print ('-' * 20)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 15:42:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-11 01:08:55 | 显示全部楼层
本帖最后由 凌九霄 于 2018-4-11 01:13 编辑
from itertools import permutations

allarrangement = list(permutations([1, 2, 3, 4, 5, 6, 7, 8, 9], 9))
for i in allarrangement:
    if sum(i[0:3]) == sum(i[3:6]) == sum(i[6:9]) == sum(i[0:9:3]) == sum(i[1:9:3]) == sum(i[2:9:3]) == sum(i[0:9:4]) == sum(i[2:8:2]):
        print("{0}|{1}|{2}\n{3}|{4}|{5}\n{6}|{7}|{8}\n".format(i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]))

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

使用道具 举报

发表于 2018-4-11 09:33:33 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-23 17:07:08 | 显示全部楼层
from itertools import permutations as pt
result = []
combol = pt(range(1,10),3)
for i in combol:
    num = []
    a, b, c = i
    if a+b+c==15:
        num.append(a)
        num.append(b)
        num.append(c)
        result.append(num)
combol2 = pt(result,3)
Finalresult = []
for x in combol2:
    num2 = []
    num1 = []
    A,B,C = x
    if A[0]+B[0]+C[0]==15 and A[1]+B[1]+C[1]==15 and A[2]+B[2]+C[2]==15 and A[0]+B[1]+C[2]==15 and A[2]+B[1]+C[0]==15:
        num2.append(A)
        num2.append(B)
        num2.append(C)
        num1.extend(A)
        num1.extend(B)
        num1.extend(C)
        if len(list(set(num1)))==9:
            Finalresult.append(num2)
print('满足要求的九宫格有%d组'%len(Finalresult))
print(Finalresult)
方法太笨了····
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-23 17:07:53 | 显示全部楼层
jrro452 发表于 2018-5-23 17:07
方法太笨了····

结果:
满足要求的九宫格有8组
[[[2, 7, 6], [9, 5, 1], [4, 3, 8]], [[2, 9, 4], [7, 5, 3], [6, 1, 8]], [[4, 3, 8], [9, 5, 1], [2, 7, 6]], [[4, 9, 2], [3, 5, 7], [8, 1, 6]], [[6, 1, 8], [7, 5, 3], [2, 9, 4]], [[6, 7, 2], [1, 5, 9], [8, 3, 4]], [[8, 1, 6], [3, 5, 7], [4, 9, 2]], [[8, 3, 4], [1, 5, 9], [6, 7, 2]]]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-23 20:35:50 | 显示全部楼层
哈哈哈 不会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-16 17:19:55 | 显示全部楼层
学习中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-22 09:36:55 | 显示全部楼层
感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-3 13:25:50 From FishC Mobile | 显示全部楼层
每天一学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-3 14:42:31 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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