先谢谢大家了!!!真的很感谢,有这么多的朋友来帮忙,我真的好感动,第一次发帖就有这么多的人关心我o(∩_∩)o...哈哈
下面是我用java编的程序,刚开始用c编的,后来发现结果不能全部显示出来,vc也一样,dos环境是有些缺憾哈~~~
各位大侠看过后给提个意见,就是我编好的这个程序,如何把重复的挑出来?在哪进行修改?
import java.lang.Math;
public class Distance {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][]z = {{0, 0, 0, 0, 0},
{0, 0, 0, 0, 1},
{0, 0, 0, 1, 0},
{0, 0, 1, 0, 0},
{0, 1, 0, 0, 0},
{1, 0, 0, 0, 0},
{0, 0, 0, 1, 1},
{0, 0, 1, 1, 0},
{0, 1, 1, 0, 0},
{1, 1, 0, 0, 0},
{1, 0, 1, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 1, 0, 1},
{1, 0, 0, 1, 0},
{0, 1, 0, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 1, 0, 0},
{1, 1, 0, 0, 1},
{1, 0, 0, 1, 1},
{0, 0, 1, 1, 1},
{0, 1, 0, 1, 1},
{1, 0, 1, 0, 1},
{1, 1, 0, 1, 0},
{0, 1, 1, 0, 1},
{1, 0, 1, 1, 0},
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 0},
{1, 1, 1, 0, 1},
{1, 1, 0, 1, 1},
{1, 0, 1, 1, 1},
{0, 1, 1, 1, 1},
{1, 1, 1, 1, 1}
};
int dis1,dis2,dis3,dis4,dis5,dis6,k,p,q,count=0;
for(int i = 0; i<32; i++)
{
for(int j = 0; j<32; j++)
{
if(j==i)continue;
dis1=0;k=i;
for(int h = 0;h<5;h++)
{
dis1+= Math.abs(z[k][h]-z[j][h]);
}
if(dis1>=3)
{
for(int m=0;m<32;m++)
{
dis2=0;dis3=0;
p=j;
if(m==k||m==p) continue;
for(int a = 0;a<5;a++)
{
dis2+=Math.abs(z[k][a]-z[m][a]);
dis3+=Math.abs(z[p][a]-z[m][a]);
}
if(dis2==3&&dis3==3)
{
for(int y=0;y<32;y++)
{
dis4=0;dis5=0;dis6=0;
q=m;
if(y==k||y==p||y==q) continue;
for(int h=0;h<5;h++)
{
dis4+=Math.abs(z[k][h]-z[y][h]);
dis5+=Math.abs(z[p][h]-z[y][h]);
dis6+=Math.abs(z[q][h]-z[y][h]);
}
if(dis4>=3&&dis5>=3&&dis6>=3)
{
System.out.println("z["+k+"]z["+p+"]z["+q+"]z["+y+"]的任意两个距离都大于3");
count++;
}
}
}
}
}
}
}
System.out.println("共有"+count/4+"组");
}
}
[[it] 本帖最后由 yiming5954 于 2008-4-7 12:43 编辑 [/it]]