📄 getcitymartix.htm
字号:
<html>
<head>
<title>TSP问题城市间距离矩阵生成--章舜仲:zszws@jlonline.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body style="font-size:14px;">
<script language="JavaScript">
//**********城市对象*********************//
function City(CityNo){
this.x=Math.ceil(Math.random()*300);//x坐标
this.y=Math.ceil(Math.random()*150);//y坐标
this.num=CityNo;
this.to
this.toString=function(){
return(CityNo+"("+this.x+","+this.y+")");
}
this.display=function(){
s="<div style='position:absolute;left:"+3*this.x+";top:"+3*this.y+";";
s=s+"height:10;font-size:10px;width:10;background:red;color:blue;z-index:10;'>"+CityNo+"</div>"
document.write(s);
}
this.setPosition=function(){
this.x=Math.ceil(Math.random()*300);//x坐标
this.y=Math.ceil(Math.random()*200);//y坐标
}
}
function sameCity(City1,City2){
if((City1.x==City2.x)&&(City1.y==City2.y)){
return(true);
}else{
return false;
}
}
//**********************************************//
var CityCount=30;//城市个数
var Cities=new Array(CityCount);
var i,j,distance;
//定义二维数组,距离矩阵
var Martix=new Array(CityCount);
for(i=0;i<CityCount;i++){
Martix[i]=new Array(CityCount);
}
//创建城市对象
document.write("红色方块为城市位置的示范:"+CityCount+"个城市坐标(改变城市个数请修改CityCount变量):<br>");
for(i=0;i<CityCount;i++){
Cities[i]=new City(i);
for(j=0;j<i;j++){
while(sameCity(Cities[i],Cities[j])){
Cities[i].setPosition();
}
}
document.write(Cities[i].toString()+";");
Cities[i].display();
}
//计算城市间距离,填入距离矩阵
for(i=0;i<CityCount;i++){
Martix[i][i]=0;
}
for(i=0;i<CityCount;i++){
for(j=i+1;j<CityCount;j++){
distance=Math.sqrt((Cities[i].x-Cities[j].x)*(Cities[i].x-Cities[j].x)+
(Cities[i].y-Cities[j].y)*(Cities[i].y-Cities[j].y));
distance=Math.round(distance);
Martix[i][j]=distance;
Martix[j][i]=distance;
}
}
document.write("<br><br>距离矩阵(以下粘贴到遗传算法源程序中即可):<br>");
//输出距离矩阵
for(i=0;i<CityCount;i++){
document.write("{"+Martix[i]+"},<br>");
}
</script>
<script>
//setTimeout("alert(document.body.innerHTML);",1000);
</script>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -