引言
我在近一两年开始接触ICode。 比起刷题,ICode确实更容易让孩子们学习编程和算法的思考。 ICode也反映出孩子们逆向思维能力不足。 有些孩子一旦机器人旋转,就无法区别左右,也有些孩子很难设计出机器人倒着走的方法算法)。 有些家长问了我什么是逆向思维,所以在这里浅谈一下编程教育中的逆向思维。 为了简单起见,以魔方为例!
魔方
3*3魔方
魔方大家应该都知道,但我不多介绍。 但是,大部分非魔方爱好者可能不知道3*3魔方从复原状态到任意混乱状态最多不超过20步。 反过来说,如果给出任意复杂的混乱状态,最多可以用20个步骤将其复原。 大多数状态可以在10几步内恢复。 所以,世界纪录是秒级的。 我想有些读者已经等不及了。 无论是在说魔方,还是在说逆向思维,官方的吐槽才是最致命的。
魔方里的逆向思维
众所周知,恢复魔方很难,但打乱魔方通常只需要很少的步骤。 可以反过来考虑。 中,恢复魔方的最小操作问题可以转换为用最小操作将恢复状态的魔方打乱为混乱状态的逆问题。 一系列打乱操作的逆操作是恢复魔方的操作,恢复魔方的最佳路线是逆序打乱操作,步骤数相同,顺序相反。 从起点到终点是正向思维,从终点到终点反向推进是逆向思维。 很明显,如果复原顺序的数量超过了打乱顺序,我们就会错过最优解,做了很多徒劳的工作! 同样,设计计算机算法时要避免无意义的计算。
从
计算机如何求解魔方问题
以上可以看出,最佳的打乱顺序和复原顺序数量相同,是相反的顺序。 对于魔方问题,可以从起点到终点,从终点到起点进行搜索。 在其他问题如NOI Online 2021重力球)中,从终点搜索往往比搜索终点更容易! 3*3魔方最多不超过20步即可复原。 我们必须充分利用这个事实。 我们从还原状态到给出的混乱状态,再从给出的混乱状态到还原状态,为了不需要按照相反的顺序操作,能否通过一步给出的目标状态,如果不能通过两步能否达到目标状态,并且如果不能通过三步这样,最多不会超过20步。 称为反复深化的该深度优先搜索iterativedeepeningdepth-first search ) idsoridDFS ) ) ) ),是状态空间)状态图)的搜索战略。 一般来说,这种搜索算法限制了计算机不使用多余的步骤来实现目标状态。
迭代加深搜索和人工神经网络
迭代深化搜索与深度神经网络相结合,从传统算法转换为机器学习算法。 这样的AI可以记住导出几种状态的最佳路径,不需要经常花时间检索计算。