这个是转置,不知道是不是“旋转矩阵”import java.util.*;public class Cute
{
public Vector trans(Vector old)
{
Vector newvec = new Vector();
Vector[] org = new Vector[old.size()];
for(int i = 0 ; i < old.size() ; i++)
{
org[i] = (Vector) old.elementAt(i);
}
Vector[] newmem = new Vector[org[0].size()];
for(int i = 0 ; i < org[0].size() ; i++)
{
newmem[i] = new Vector();
for(int j = 0 ; j < org.length ; j++)
{
newmem[i].add(org[j].elementAt(i).toString());
}
}
for(int i = 0 ; i < org[0].size() ; i++)
{
newvec.addElement(newmem[i]);
}
return newvec;
}
public static void main(String[] args)
{
Cute cute = new Cute();
//build 6*4
Vector vec = new Vector();
for(int i = 0 ; i < 6 ; i++)
{
Vector temp = new Vector();
for(int j = 0 ; j <4 ; j++)
{
temp.addElement(String.valueOf(4*i+j));
System.out.print((4*i+j)+" ");
}
vec.addElement(temp);
System.out.println();
}
Vector vecnew = cute.trans(vec);
for(int i = 0 ; i < 4 ; i ++)
{
Vector temp = (Vector)vecnew.elementAt(i);
for(int j = 0 ; j < 6 ; j++)
{
System.out.print(temp.elementAt(j)+" ");
}
System.out.println();
}
}
}
{
public Vector trans(Vector old)
{
Vector newvec = new Vector();
Vector[] org = new Vector[old.size()];
for(int i = 0 ; i < old.size() ; i++)
{
org[i] = (Vector) old.elementAt(i);
}
Vector[] newmem = new Vector[org[0].size()];
for(int i = 0 ; i < org[0].size() ; i++)
{
newmem[i] = new Vector();
for(int j = 0 ; j < org.length ; j++)
{
newmem[i].add(org[j].elementAt(i).toString());
}
}
for(int i = 0 ; i < org[0].size() ; i++)
{
newvec.addElement(newmem[i]);
}
return newvec;
}
public static void main(String[] args)
{
Cute cute = new Cute();
//build 6*4
Vector vec = new Vector();
for(int i = 0 ; i < 6 ; i++)
{
Vector temp = new Vector();
for(int j = 0 ; j <4 ; j++)
{
temp.addElement(String.valueOf(4*i+j));
System.out.print((4*i+j)+" ");
}
vec.addElement(temp);
System.out.println();
}
Vector vecnew = cute.trans(vec);
for(int i = 0 ; i < 4 ; i ++)
{
Vector temp = (Vector)vecnew.elementAt(i);
for(int j = 0 ; j < 6 ; j++)
{
System.out.print(temp.elementAt(j)+" ");
}
System.out.println();
}
}
}
public static void main(String[] args) {
int[][] source = {{8,7},{45,65},{12,45}};
int[][] target = 变(source,3,2);
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
System.out.print(target[i][j]+"\t");
}
System.out.print('\n');
}
}
static int[][] 变 (int[][] array,int rows,int cols){
int[][] result = new int[cols][rows];
for(int i=0;i<cols;i++){
for(int j=0;j<rows;j++){
result[i][j]=array[j][i];
}
}
return result;
}
}原矩阵:
8 7
45 65
12 45
输出:
8 45 12
7 65 45
500分怎么给?
import java.io.*;class ScrewMatrix
{
public static void main(String[] args)
{
int width=10; int height=9; //初始化矩阵的行和列
int r=width*height+1;
int w=width; int h=height-1;
int n=0; int g=0;
int p=h-1; int m=width;
int count=1; int f=0;
int []arr=new int[r-1]; while(true)
{
for(int i=0;(i<w)&&(count!=r);++i,++count)
arr[width*n+i+(width-m)-f]=count;
for(int i=0;(i<h)&&(count!=r);++i,++count)
arr[width*(height-p+i)-g-1]=count;
for(int i=0;(i<(w-1))&&(count!=r);++i,++count)
arr[width*(h+g+1)-g-1-i-1]=count;
for(int i=0;(i<(h-1))&&(count!=r);++i,++count)
arr[width*(p-i)+g+1-1]=count;
if(count==r)
break; --p; m-=2; ++n; ++g; h-=2; w-=2; ++f;
} for(int i=0;i<arr.length;++i)
{
if(i%(width)==0)
System.out.println();
System.out.print(" "+arr[i]+'\t');
}
System.out.println();
}
}
MSN:[email protected]
A B C E G H J
A B C F H I J
A B D E F H J
A B D F G H J
A B E G H I J
A C E F G H I
B C D E F G I
C D E F G I J
美国人Gail Howard 发明的.