首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个算法,求思路.小弟我是新手

2012-10-17 
一个算法,求思路...我是新手一个N宫格,姑且叫做棋盘...上面任意放着0-N^2这些数字,要计算0走到1的最短路程

一个算法,求思路...我是新手
一个N宫格,姑且叫做棋盘...上面任意放着0-N^2这些数字,要计算0走到1的最短路程,遇到素数则此路不能通过。。

我已经用二维动态数组创建一个棋盘,确定是否为素数的算法我也懂...

求问: 最短距离怎么计算?有很多情况遇到素数啊。。

求大神指点(要用C语言)

[解决办法]
深度搜索或广度搜索
[解决办法]
题目对吗?
0-N^2这些数字是随机放置的?
0到1的最短路程,0和1的位置也是随机的?
[解决办法]
先计算0 和 1 的相对位置,这样才可以用深搜得到最短路。

比如1 在 0 的右下方,可以搜索的时候先向右和下走然后枚举上和左
[解决办法]
素数就是质数,根据定义就能够判断,只能被自己和1整除的数。
思路:
1,随机生成一个N^2的排列,组成一个数组map;
2,计算map中的素数,用-1表示,非素数用2表示,0和1不变;
3,从0的位置开始广度搜索,使用到1的最少距离为下界;
4,要减去多余的枝,确定上下界。
[解决办法]
一个N宫格,姑且叫做棋盘...上面任意放着0~N^2-1这些数字,……
“多一少一”问题占程序员常犯错误的10%以上!

[解决办法]
一般广搜或深搜

最优解 A星蛮好用得
[解决办法]
广度用队列实现 深度用栈实现了
[解决办法]
提醒:2是素数。

热点排行