PHP实现的蚂蚁爬行路径算法的算法代码

PHP实现的蚂蚁爬行路径算法的算法代码
本文介绍了用php实现的蚂蚁爬杆路径算法的代码,供大家参考
< PHP

* 27厘米精细木材,第三厘米,7厘米,11厘米,17厘米,23厘米和五个位置各有一个蚂蚁。
*木头很好,不是蚂蚁同时做的。起初,蚂蚁向左或右边走,它们只向前走或转头。
*但不回来。当两个蚂蚁相遇时,两只蚂蚁同时把头转向相反的方向。
*编写一个程序,让所有蚂蚁离开极点的最短时间和最大时间。
* /
功能(directionarr 2美元美元美元,伯爵,我){
如果超出计算范围,则为($ 0)
返回的directionarr;
}
如果(0 = = $ directionarr { $我}){ / /电流加1
directionarr美元{ $我} = 1;
返回的directionarr;
}
directionarr美元{ $我} = 0;
返回ADD2(directionarr美元美元美元,伯爵,我- 1); / /携带
}
positionarr美元=阵列( / /位置
三,
7,
11,
17,
二十三
);
功能路径($ positionarr){ / /测试路径生成
pathcalculate美元=阵();
$count =计数($ positionarr);
directionarr美元(0美元= array_fill,计数,0); / /走向
美元= str_repeat(1,$count);
当(真){
路径=美元崩溃('',directionarr美元);
patharray美元= array_combine(positionarr美元,美元directionarr);
总=(positionarr美元美元计算,美元directionarr);
pathcalculate美元{ 'P'美元} = $总路径;
如果($ = $ = $ PATH)
打破;
}
directionarr = 2美元(美元美元美元directionarr,计数,计数1);
}
返回的pathcalculate;
}
函数计算(positionarr美元,美元directionarr){
总计= 0;总时间
$长度= 27;
而($ positionarr){
总计+ +;
nextarr美元=(阵列); / /下一个位置
foreach(positionarr美元美元美元关键=值){
如果(0 = = $ directionarr { $关键}){
$下一步=值1;向0个方向迈出一步
{人}
$ Next = $ + 1;向1个方向迈出一步
}
如果(0 = $下一步){在0个方向中退出
继续;
}
如果($ = $下一步){在1个方向中退出
继续;
}
nextarr美元美元美元关键} = {下;
}
positionarr美元=美元nextarr; / / positionarr美元将临时搜索阵列
foreach(nextarr美元美元美元关键=值){
findarr美元= array_keys(positionarr美元,美元的价值);
如果(计数($ findarr)<2){ / /不重合的位置
继续;
}
foreach(findarr美元美元findIndex){
directionarr { } = findIndex美元美元美元美元directionarr { findIndex } 0:1; / /反向处理
unset($ positionarr { $ findIndex }); / /防止重复搜索计算
}
}
positionarr美元=美元nextarr; / / positionarr美元设置为数组中的下一步
}
返回总金额;
}
pathcalculate美元=路径($ positionarr);
echo'calculate --;
print_r($ pathcalculate);
echo'sort --;
Asort(pathcalculate美元);
print_r($ pathcalculate);

希望本文能对PHP程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部