将n组1-n随机置于n*n的单元格中,使得每行,每列都是1-n的一个全排列
-
SubPerm()
-
DimnAsLong,iAsLong,jAsLong,arr(),brr(),tAsLong
- n=20
-
ReDimarr(n-1,n-1)
-
ReDimbrr(n-1)
-
Fori=0Ton^2-1
-
arr(i\n,iModn)=(i\n+i)Modn+1
-
Next
- Randomize
-
Fori=n-1To0Step-1
- t=Int(Rnd*i+1)
-
Forj=0Ton-1
- brr(j)=arr(j,t)
-
Next
-
Forj=0Ton-1
- arr(j,t)=arr(j,i)
- arr(j,i)=brr(j)
-
Next
- t=Int(Rnd*i+1)
-
Forj=0Ton-1
- brr(j)=arr(t,j)
-
Next
-
Forj=0Ton-1
- arr(t,j)=arr(i,j)
- arr(i,j)=brr(j)
-
Next
-
Next
- [a1].Resize(n,n)=arr
-
EndSub
执行结果:
1 |
19 |
14 |
6 |
8 |
9 |
18 |
10 |
16 |
11 |
13 |
4 |
20 |
17 |
3 |
5 |
15 |
2 |
7 |
12 |
3 |
1 |
16 |
8 |
10 |
11 |
20 |
12 |
18 |
13 |
15 |
6 |
2 |
19 |
5 |
7 |
17 |
4 |
9 |
14 |
10 |
8 |
3 |
15 |
17 |
18 |
7 |
19 |
5 |
20 |
2 |
13 |
9 |
6 |
12 |
14 |
4 |
11 |
16 |
1 |
16 |
14 |
9 |
1 |
3 |
4 |
13 |
5 |
11 |
6 |
8 |
19 |
15 |
12 |
18 |
20 |
10 |
17 |
2 |
7 |
14 |
12 |
7 |
19 |
1 |
2 |
11 |
3 |
9 |
4 |
6 |
17 |
13 |
10 |
16 |
18 |
8 |
15 |
20 |
5 |
2 |
20 |
15 |
7 |
9 |
10 |
19 |
11 |
17 |
12 |
14 |
5 |
1 |
18 |
4 |
6 |
16 |
3 |
8 |
13 |
17 |
15 |
10 |
2 |
4 |
5 |
14 |
6 |
12 |
7 |
9 |
20 |
16 |
13 |
19 |
1 |
11 |
18 |
3 |
8 |
15 |
13 |
8 |
20 |
2 |
3 |
12 |
4 |
10 |
5 |
7 |
18 |
14 |
11 |
17 |
19 |
9 |
16 |
1 |
6 |
20 |
18 |
13 |
5 |
7 |
8 |
17 |
9 |
15 |
10 |
12 |
3 |
19 |
16 |
2 |
4 |
14 |
1 |
6 |
11 |
18 |
16 |
11 |
3 |
5 |
6 |
15 |
7 |
13 |
8 |
10 |
1 |
17 |
14 |
20 |
2 |
12 |
19 |
4 |
9 |
13 |
11 |
6 |
18 |
20 |
1 |
10 |
2 |
8 |
3 |
5 |
16 |
12 |
9 |
15 |
17 |
7 |
14 |
19 |
4 |
7 |
5 |
20 |
12 |
14 |
15 |
4 |
16 |
2 |
17 |
19 |
10 |
6 |
3 |
9 |
11 |
1 |
8 |
13 |
18 |
8 |
6 |
1 |
13 |
15 |
16 |
5 |
17 |
3 |
18 |
20 |
11 |
7 |
4 |
10 |
12 |
2 |
9 |
14 |
19 |
12 |
10 |
5 |
17 |
19 |
20 |
9 |
1 |
7 |
2 |
4 |
15 |
11 |
8 |
14 |
16 |
6 |
13 |
18 |
3 |
6 |
4 |
19 |
11 |
13 |
14 |
3 |
15 |
1 |
16 |
18 |
9 |
5 |
2 |
8 |
10 |
20 |
7 |
12 |
17 |
11 |
9 |
4 |
16 |
18 |
19 |
8 |
20 |
6 |
1 |
3 |
14 |
10 |
7 |
13 |
15 |
5 |
12 |
17 |
2 |
9 |
7 |
2 |
14 |
16 |
17 |
6 |
18 |
4 |
19 |
1 |
12 |
8 |
5 |
11 |
13 |
3 |
10 |
15 |
20 |
19 |
17 |
12 |
4 |
6 |
7 |
16 |
8 |
14 |
9 |
11 |
2 |
18 |
15 |
1 |
3 |
13 |
20 |
5 |
10 |
5 |
3 |
18 |
10 |
12 |
13 |
2 |
14 |
20 |
15 |
17 |
8 |
4 |
1 |
7 |
9 |
19 |
6 |
11 |
16 |
4 |
2 |
17 |
9 |
11 |
12 |
1 |
13 |
19 |
14 |
16 |
7 |
3 |
20 |
6 |
8 |
18 |
5 |
10 |
15 |
分享到:
相关推荐
N*N阶方阵求逆矩阵C代码
#include #include using namespace std; int main() { int n,i,k=0; cin>>n; for(i=n*n;i>=1;i--) { cout(5); k++; if(k%n==0) cout; } cout; return 0;
在一个N*N的方阵中,填入1,2,……N 共N个数,并要求构成如下的格式:N, 例: N=4 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入 多组数据,每行读入一个N. 输出 对应输出N*N的蛇形矩阵,每个数字...
实现一个n*n矩阵的向右旋转90度 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 右旋转90度后的效果: 13 9 5 1 14 10 6 2 15 11 7 3 16 12 8 4
题目描述:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵 题目示例:三阶方阵,围绕方阵中心顺时针旋转 输入描述: (1) 第一行输入一个正整数N (0<N<10) (2) 接下来...
Author:青鸟学子 QQ:64578820 Msn:foart@hotmail.com c++陀螺方阵
幻方问题C语言实现:设n为奇数,试在n n的表格内不重复地填上1, 2, …, n n数字,使得横向、纵向、两对角线上数之和都相等
c语言编写n阶蛇形方阵 算法设计与分析 第三章
魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2…n 的平方的n×n 的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n 个元素之和都相等。
2.功能为构建一个n阶魔阵,其元素由自然数1至n*n组成。魔阵的每一行元素之和,每一列元素之和以及主、副对角线元素之和相等。 3.输入参数:n为奇数。输出结果的格式要具有n阶方阵的形式。 4.源程序位于G:\谭春雨\...
完成螺旋方阵的建立,输出。 完成螺旋方阵的建立,输出。
主要介绍了java实现的n*n矩阵求值及求逆矩阵算法,结合具体实例形式分析了java基于数组的矩阵定义、遍历、运算等相关操作技巧,需要的朋友可以参考下
C语言程序设计-求n阶方阵主、副对角线上的元素之积;.c
写出程序填写出N*N“魔方阵”的数值。所谓魔方 阵是指这样的方阵,数据是正整数,从1开始,每 个递增1,每个数据不重复出现,它的每一行、每 一列和对角线之和均相等(N是奇数)。 17 24 01 08 15 23 05 07 14 16 04...
求N阶方阵右下角元素的和(包括副对角线元素),函数调用,自己写的
C语言程序设计-用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素);
二维数组的简单应用,可以在n阶方阵中找到鞍点(鞍点的元素值在该行上最大, 在该列上最小)。
MagicSquareGenerator 正常的魔术方阵(以下称为魔术方阵)是排列在n×n网格中的从1到n2的整数的排列。 每个数字仅出现一次,并且每一行,每一列或对角线中数字的总和等于相同的数字。 #跑步 javac ...
Java实现n阶螺旋方阵,键盘输入阶值。。。。。。
向标准输出输出一个N*N的螺旋矩阵,即边长为N*N,元素取值为1至N*N,1在左上角,呈顺时针方向依次放置各元素,每个数字占5个字符宽度,向右对齐,不足部分补以空格。在每一行末均输出一个回车符。 【输入样例】 ...