|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。成绩/*
*8恋人成绩:
*
*成绩形貌:
*在一个8×8的棋盘里安排8个恋人,请求每一个恋人两两之间不相抵触
*(在每横列,竖列,斜列只要一个恋人)。
*
*数据暗示:
*用一个8位的8进制数暗示棋盘下情人的地位:
*好比:45615353暗示:
*第0列恋人在第4个地位
*第1列恋人在第5个地位
*第2列恋人在第6个地位
*。。。
*第7列恋人在第3个地位
*
*轮回变量从00000000加到77777777(8进制数)的历程,就遍历了恋人一切的情形
*程序顶用八进制数用一个一维数组data[]暗示
*
*检测抵触:
*横列抵触:data[i]==data[j]
*斜列抵触:(data[i]+i)==(data[j]+j)大概(data[i]-i)==(data[j]-j)
*
*优点:
*接纳轮回,而不是递规,体系资本占据少
*可盘算n恋人成绩
*把成绩线性化处置,能够把成绩分块,在散布式情况下用多台盘算机一同算。
*
*ToDo:
*列举部分还能够举行优化,多加些判别前提速率能够更快。
*输入部分能够修正成棋盘情势的输入
*
*@authorcinc2002-09-11
*
*/
publicclassQueen{
intsize;
intresultCount;
publicvoidcompute(intsize){
this.size=size;
resultCount=0;
intdata[]=newint[size];
intcount;//一切大概的情形个数
inti,j;
//盘算一切大概的情形的个数
count=1;
for(i=0;i<size;i++){
count=count*size;
}
//对每个大概的情形
for(i=0;i<count;i++){
//盘算这类情形下的棋盘下情人的摆放地位,用8进制数暗示
//此处可优化
inttemp=i;
for(j=0;j<size;j++){
data[j]=temp%size;
temp=temp/size;
}
//测试这类情形是不是可行,假如能够,输入
if(test(data))
output(data);
}
}
/*
*测试这类情形恋人的分列是不是可行
*
*/
publicbooleantest(int[]data){
inti,j;
for(i=0;i<size;i++){
for(j=i+1;j<size;j++){
//测试是不是在统一排
if(data[i]==data[j])
returnfalse;
//测试是不是在一斜线
if((data[i]+i)==(data[j]+j))
returnfalse;
//测试是不是在一反斜线
if((data[i]-i)==(data[j]-j))
returnfalse;
}
}
returntrue;
}
/*
*输入某种情形下恋人的坐标
*
*/
publicvoidoutput(int[]data){
inti;
System.out.print(++resultCount+":");
for(i=0;i<size;i++){
System.out.print("("+i+","+data[i]+"");
}
System.out.println();
}
//main()就是在这里.
publicstaticvoidmain(Stringargs[]){
(newQueen()).compute(8);
}
}
没有那个大公司会傻了吧唧用.net开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net不行,限制在window系统,又是捆绑,鄙视微软之! |
|