不是3*m*n是3^(m*n)意思是:3的(m*n)的积次幂如,你说所,要你求2*2矩阵情况,每个元素都有3个情况:-1,0,1那就是情况数=3^(2*2)=3^4=3*3*3*3=81种情况。
解决方案 »
- 请教C#中{}符号的用法
- 在线等 --- 一个奇怪的if判断
- 窗体间控件显示值问题?
- 一个传值问题
- 一个抽象的属性, 应该怎么重写
- C#中加载启动图片的问题(新手)
- 如何隐藏DataGrid的第一行??
- 再次提问:高级问题:当一个数据库有多个用户,其中一个用户正查询了某表的一条记录到客户端,另外的用户是如何判断此记录正被用户使用???
- 关于昨天的socket 程序,我昨晚就按照书的写了一个,发现以几点问题,特来请教!!
- 请问如何用C#编译word控件啊?请各位大哥赐教.
- 请教各位:cpu与vs2008编程
- 调试的时候正常,正常运行的时候画面就卡住了没法往下进行了,谁能告诉我为什么? 急啊!!!
{(a,b),(c,d)}
=3*3*3*3=3^4=3^X
m行n列有m*n个元素
所以X=(m*n)个元素
=3^(m*n)
现假定m<5,n<5,其它不变
如一个2*2 的矩阵,结果有12种,{(-1,-1),(-1,-1)},,{(-1,-1),(-1,0)},
,{(-1,-1),(0,0)},,{(1,1),(-1,-1)},,{(1,1),(1,1)},
,{(0,0),(-1,-1)}等,求这种算法!!!求遍列各种矩阵的算法。
如一个2*2 的矩阵,结果有3*3*3*3种,{(-1,-1),(-1,-1)},,{(-1,-1),(-1,0)},
,{(-1,-1),(0,0)},,{(1,1),(-1,-1)},,{(1,1),(1,1)},
,{(0,0),(-1,-1)}等,求这种算法!!!
大意如下:首先考虑1×1矩阵,就是一个元素,因此取值就是三种,-1,0,1
2×2矩阵就是4个1×1矩阵,每个1×1矩阵又有三种形式,进行循环就能得到所有的2×2矩阵
3×3矩阵就是一个2×2矩阵+5个1×1矩阵,进行组合
4×4矩阵就是一个个3×3矩+7个1×1矩阵进行组合M*N矩阵就是K1个(M-1)×(N-1)矩阵+P1个1×1矩阵进行组合的结果
(M-1)*(N-1)矩阵就是K2个(M-2)*(N-2)个矩阵+P2个1×1矩阵进行组合的结果
依次类推,直到2×2矩阵,再到1×1矩阵
结果就出来了
{
const int MAX=100;
int[,] Values=new int[MAX,MAX];
int[] PossibleValue = new int[] { -1, 0, 1 };
int M, N;
public void Generate(int weight, int height)
{
M = weight;
N = height;
Processing(1, 1);
}
void Processing(int weight, int height)
{
if (weight > M)
{
///打印这个矩阵
Console.WriteLine("array ");
for (int i = 1; i <=M; i++)
{
for(int j=1; j<=N; j++)
{
Console.Write(Values[i, j].ToString() + " ");
}
Console.WriteLine();
}
return;
}
for (int i = 0; i < PossibleValue.Length; i++)
{
Values[weight,height] = PossibleValue[i];
if (height == N)
{
Processing(weight + 1, 1);
}
else
{
Processing(weight, height + 1);
}
} }
}
static void Main(string[] args)
{
GenerateArrays ga = new GenerateArrays();
ga.Generate(2, 2);
}