鱼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 | 显示全部楼层

  1. # For import permutations
  2. import itertools
  3. import numpy

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

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

使用道具 举报

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

使用道具 举报

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

  3. jiugongge = [[i,j,k] for i in allFifteen for j in allFifteen for k in allFifteen \
  4.              if j[0] not in i and j[1] not in i and j[2] not in i and \
  5.              j[0] not in k and j[1] not in k and j[2] not in k and \
  6.              i[0] not in k and i[1] not in k and i[2] not in k and \
  7.              i[0]+j[0]+k[0] == i[1]+j[1]+k[1] == i[2]+j[2]+k[2] == 15 and\
  8.              i[0]+j[1]+k[2] == i[2]+j[1]+k[0] == 15]

  9. for i in jiugongge:
  10.     print('-------------------------')
  11.     for j in i:
  12.         print(j)


  13. # 很多if,很暴力,但结果出来了。
  14. >>>
  15. -------------------------
  16. [2, 7, 6]
  17. [9, 5, 1]
  18. [4, 3, 8]
  19. -------------------------
  20. [2, 9, 4]
  21. [7, 5, 3]
  22. [6, 1, 8]
  23. -------------------------
  24. [4, 3, 8]
  25. [9, 5, 1]
  26. [2, 7, 6]
  27. -------------------------
  28. [4, 9, 2]
  29. [3, 5, 7]
  30. [8, 1, 6]
  31. -------------------------
  32. [6, 1, 8]
  33. [7, 5, 3]
  34. [2, 9, 4]
  35. -------------------------
  36. [6, 7, 2]
  37. [1, 5, 9]
  38. [8, 3, 4]
  39. -------------------------
  40. [8, 1, 6]
  41. [3, 5, 7]
  42. [4, 9, 2]
  43. -------------------------
  44. [8, 3, 4]
  45. [1, 5, 9]
  46. [6, 7, 2]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2018-3-10 16:01:46 | 显示全部楼层
  1. 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]
  2. for x in a:
  3.     for y in a:
  4.         if (x[0] in y) or (x[1] in y) or (x[2] in y):
  5.             continue
  6.         for z in a:
  7.             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):
  8.                 continue
  9.             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]:
  10.                 print("-----")
  11.                 print(x)
  12.                 print(y)
  13.                 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 编辑
  1. from itertools import permutations

  2. allarrangement = list(permutations([1, 2, 3, 4, 5, 6, 7, 8, 9], 9))
  3. for i in allarrangement:
  4.     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]):
  5.         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 | 显示全部楼层
  1. from itertools import permutations as pt
  2. result = []
  3. combol = pt(range(1,10),3)
  4. for i in combol:
  5.     num = []
  6.     a, b, c = i
  7.     if a+b+c==15:
  8.         num.append(a)
  9.         num.append(b)
  10.         num.append(c)
  11.         result.append(num)
  12. combol2 = pt(result,3)
  13. Finalresult = []
  14. for x in combol2:
  15.     num2 = []
  16.     num1 = []
  17.     A,B,C = x
  18.     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:
  19.         num2.append(A)
  20.         num2.append(B)
  21.         num2.append(C)
  22.         num1.extend(A)
  23.         num1.extend(B)
  24.         num1.extend(C)
  25.         if len(list(set(num1)))==9:
  26.             Finalresult.append(num2)
  27. print('满足要求的九宫格有%d组'%len(Finalresult))
  28. 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-4-27 04:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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