python打印n阶魔方阵_Python3 趣味系列题2 ------构建任意阶幻方

幻方又称为魔方,方阵或厅平方。通常幻方由从1到n^2 的连续整数组成,其中n为正方形的行或列的数目。幻方有很多变形例如完全幻方、乘幻方、高次幻方、反幻方等。经过人们的研究,得到许多构建的方法,幻方唾手便可完成。

问题描述

将数填在纵横格数都相等的正方形图内,使得每一行、每一列和每一条对角线上的各个数之和都相等。

解决思路

幻方按照阶数的数字属性不同,可分为奇数阶、双偶阶、单偶阶。每一种都有固定的解决方案。程序中#后标注的内容即为方法步骤。

Python3代码

#引入库

import numpy as np

1,奇数阶幻方

def OddMagic(jieshu):

#存储幻方结构

huanfang=np.zeros((jieshu,jieshu))

#需要填写的数字列表

listnum=list(range(1,jieshu**2+1))

#第一行中间填1

i=0

j=int(jieshu/2)

#记录填写的个数

count=0

while count

huanfang[i][j]=listnum[count]

#记录i,j

cc=i

dd=j

#超出了第一行,则填到最底下一行

if i-1<0:

i=jieshu-1

else:

i-=1

#超出了最右边一列,则填到最左边一列

if j+1==jieshu:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值