有偿,我帮你写
用浮点数计算距离,我并不觉得有什么麻烦的。这与使用int存储数据并没有必然联系呀,难道楼主存储的数据是距离吗?如果存储的数据是距离那就当我没说,如果存储的数据是标号,那和距离没必要选择相同的数据类型,因为距离是临时变量,每换一个格子,周围格子的距离都要重新进行计算的,这和迷宫求解中计算路径是同一个思路,都是临时变量。 ”优先进行本行的编排”,这句话又会产生歧义了,是要先排满一排再排下一排,还是,相同距离的情况下,优先选择同一排的进行排布?我觉得是后者,但是,你不能总是用有歧义的话进行问题和事情的描述,不然的话,我们连问题都弄不清楚,就更无法谈及帮你解决问题了。 如果两个难点(1.问题计算 2.递归调用 )都有明确思路了,这个问题也就算是解决了。编程能力不行,应该不在讨论的范畴之内吧。
[quote=引用 20 楼 冰思雨的回复:]规则表述不明确: 1. 什么叫首尾相连? 如果首理解为标号1,那么,尾是个什么鬼? 标号147吗? 如果首是标号1,尾是标号2的话,按照这个规律,首是标号2,尾是标号3,那么,相连是个什么鬼?2和3之间有空白的格子怎么叫相连? 2. 如果需求是要按照最相邻近的方式将标号由大到小进行排布的话,最相邻进的标准是什么? 比如:A、标号1与2中间没有空白格子的情况,1与2的距离是0还是1? B、标号2与3之间横向有一个空白格子,2与3的距离是1还是2? C、标号2与5之间(或者2与6之间)是斜方向存在一个空白格子,这个距离是1还是2还是 根号2 ? 距离的标准没有确定,无法实现最相邻进的排布。 3. 如果不考虑斜方向的距离进行排布,只考虑横竖两个方向的话,算法会简单很多。 这个排布算法的核心难点就两个,一个是距离计算、另一个是递归调用(当然,不用递归也能实现)。
意思是不是已经确定了1,之后的格子需要找1的四方向路径最近的来标识为2,这个就要自己设置四方向查找的权重,比如出现3的上面下面左面都有格子怎么分配权重。重复这个寻路操作就可以了。如果你一定要找到使用最短路径寻到并编号所有格子的办法,那么可以把整个大格子分配成九宫格,然后九宫格内在分配九宫格,根据每个宫内的格子数分配权重。
规则表述不明确: 1. 什么叫首尾相连? 如果首理解为标号1,那么,尾是个什么鬼? 标号147吗? 如果首是标号1,尾是标号2的话,按照这个规律,首是标号2,尾是标号3,那么,相连是个什么鬼?2和3之间有空白的格子怎么叫相连? 2. 如果需求是要按照最相邻近的方式将标号由大到小进行排布的话,最相邻进的标准是什么? 比如:A、标号1与2中间没有空白格子的情况,1与2的距离是0还是1? B、标号2与3之间横向有一个空白格子,2与3的距离是1还是2? C、标号2与5之间(或者2与6之间)是斜方向存在一个空白格子,这个距离是1还是2还是 根号2 ? 距离的标准没有确定,无法实现最相邻进的排布。 3. 如果不考虑斜方向的距离进行排布,只考虑横竖两个方向的话,算法会简单很多。 这个排布算法的核心难点就两个,一个是距离计算、另一个是递归调用(当然,不用递归也能实现)。
[quote=引用 16 楼 Code for 的回复:][quote=引用 12 楼 长江水面写日记的回复:]规则最好说清楚一些,16离6近,6的下一个是跟6一行的很远的7,这个得说清楚些
[quote=引用 12 楼 长江水面写日记的回复:]规则最好说清楚一些,16离6近,6的下一个是跟6一行的很远的7,这个得说清楚些
这个简单吧,其实就是很简单的算法就可以实现
67,513
社区成员
225,879
社区内容
加载中
试试用AI创作助手写篇文章吧