编制matlab程序,用户输入n, 即可产生一个和为n的Dürer魔方。
n=input('n=');
S=sum(1:n)
生成矩阵啊,不是求和
不是和为n吧,是n*n的矩阵吧?
这样子的吗
https://jingyan.baidu.com/article/359911f570621757fe030698.html
不,就是生成和为n的4阶矩阵
发一下最终想要的效果图把
就是4阶的Dürer魔方
每阶矩阵的和都是固定的吧
看错了,就是输入n,要求Dürer魔方的和为n
这没效果图,都不知道什么样
按你的说法,输入n和为n的魔方有很多种情况的吧
需求,题目。也可以发出来一起看看
就只有这么点,没有效果图,就是任意输出一种魔方
要输出4阶的Dürer魔方
你说的 是4阶魔方,那按4阶魔方的说法应该是1.。。16所有的数排成矩阵,分别满足行,列,对角和四个方角数之和都一样
而你又说输入n,满足和要为n,那你这个n是多少,1,2,3,4行吗?显然大家都不解。
不是,只要满足和一样,填的数没有要求
输入一个整数 产生行和列和。因为 基有7个,产生一个含有7个随机整数的向量,然后这七个整数的和为输入的值,最后每个数乘一个基加起来,要多种结果
先 magic(4) 生成4阶矩阵
然后把矩阵中每个数都加上 (n-34)/4
4阶矩阵的和就变成n了
你举例说明吧,为什么基一定是7个?越说就越多,我现在说n=8你举一个满足条件的例子说明吧,也许本来好简单,描述不清楚就显得好复杂
因为4阶burer魔方的基就是7个啊,7个线性无关的矩阵,用randint生产随机1*7矩阵,生成一个和为n的4阶durer魔方
a =[ 16, 2, 3, 13, 5, 11, 10, 8, 9, 7, 6, 12, 4, 14, 15, 1 ] n = int(input('n:')) for i in range(16): a[i] += (n-34)/4 for i in range(0,16,4): print(a[i:i+4])
这样不行
我已经会了不用了
哈哈。那你给个例子啊
这个四阶魔方的7个基已知,就找出7个随机整数就行了,乘上基加起来就可以得到一个矩阵了,所以只要生成一个1*7的随机整数矩阵就行了,条件是这七个数加起来等于n
西安交通大学的题目表示好难,哈哈
https://www.cnblogs.com/dlight/p/biwen.html