典型例子包括鸡钱问题 , 有公鸡5 , 母鸡3 , 三小鸡1 , 求m钱n鸡的所有可能解 。 可以采用一个三重循环将所有情况枚举出来 。 代码如下:
五、回溯算法
回溯算法是一个类似枚举的搜索尝试过程 , 主要是在搜索尝试过程中寻找问题的解 , 当发现已不满足求解条件时 , 就“回溯”返回 , 尝试别的路径 。
许多复杂的 , 规模较大的问题都可以使用回溯法 , 有“通用解题方法”的美称 。
【机器学习|程序员都应该精通的六种算法,你会了吗?】典型例子是8皇后算法 。 在8×8格的国际象棋上摆放八个皇后 , 使其不能互相攻击 , 即任意两个皇后都不能处于同一行、同一列或同一斜线上 , 问一共有多少种摆法 。
回溯法是求解皇后问题最经典的方法 。 算法的思想在于如果一个皇后选定了位置 , 那么下一个皇后的位置便被限制住了 , 下一个皇后需要一直找直到找到安全位置 , 如果没有找到 , 那么便要回溯到上一个皇后 , 那么上一个皇后的位置就要改变 , 这样一直递归直到所有的情况都被举出 。
六、动态规划算法
动态规划过程是:每次决策依赖于当前状态 , 又随即引起状态的转移 。 一个决策序列就是在变化的状态中产生出来的 , 所以 , 这种多阶段最优化决策解决问题的过程就称为动态规划 。
动态规划算法适用于当某阶段状态给定以后 , 在这阶段以后的过程的发展不受这段以前各段状态的影响 , 即无后效性的问题 。
典型例子比如说背包问题 , 给定背包容量及物品重量和价值 , 要求背包装的物品价值最大 。
以上就是程序员经常使用的六种经典算法 , 读者们还了解哪些常用的优秀算法吗?欢迎留言哦 。
- 机器|等等党618前就能剁手!2k档再添性价比机器,LCD电竞屏+天玑8100
- 算法|武汉程序员工资普遍过万,前端工资10070元,Java工资11543元
- 清洁电器品类榜首 功能进阶 石头自清洁扫拖机器人 G10S 体验剖析
- 超5成大厂程序员,愿意降薪跳槽
- 伊隆·马斯克|梁思成手稿精致到什么程度?在没有CAD的时代,手写堪比机器打印
- 算法|机器学习的算法
- 三星堆“机器狗”铜神兽亮相
- 自动化|重复性工作再也不用做啦!机器人自动化迎难而上
- |8月19日,马斯克要带特斯拉人形机器人走两步了
- |雕塑家便携显示器,几百块的第二屏带来工作学习娱乐新方式!