常用算法思想描述
穷举算法思想
- 依赖于计算机的强大计算能力,来计算每一种可能的情况,从而解决问题,穷举法效率不是很高,但是使用以没有明显规律的场合
1. 基本思想
- 就是从所有可能的情况中搜索正确的答案
2. 步骤
- 对于一种可能的情况,计算其结果
- 判断结果是否满足要求,如果不满足执行第一步,搜索下一个可能的情况
- 需要明确指定答案的范围,通过循环和条件语句来确定最终答案
3.实例
- 鸡兔同笼问题
递推算法
1. 基本思想
- 是一种理性思维模式的代表,其根据已有的数据和关系,逐步推导而得到结果。
- 需要用户知道准去的答案和问题之间的逻辑关系,例如数学计算的公式一样
2. 步骤
- 根据已知结果和关系,求解中间结果
- 判断是否达到要求,如果没有达到,继续求解,如果满足,怎么表示找到准确答案
3. 实例
- 兔子产仔
递归算法
1. 基本思想
- 递归算法就是不断调用自身,来达到求解问题的方法,
- 要求 待求解的问题,是可以分解为相同的问题的一个子问题
- 分类
- 直接递归——直接在方法中调用本身
- 间接递归——间接调用一个方法,例如 a 调用b,b调用c,c调用a。。这种用的不多
2. 步骤
- 就是相当于数据的阶乘一样
3. 实例
- 阶乘
1. 分治算法
1. 基本思想
- 是将 计算复杂的问题分为规模较小、计算简单的小问题求解,然后综合各个小问题的答案,最后得到问题答案
2. 步骤
- 对于一个规模为n的问题,(不能直接容易求解) ,
- 将问题分解为M个规模较小的子问题,子问题相互独立,并且与原问题形式相同
- 递归解决问题
- 然后综合
3. 实例
- 寻找假币
概率算法
1. 基本思想
- 通过概率统计来求解问题,但是不能求解精准答案,
- 概率算法分为:
- 数值概率
- 蒙特卡罗(Monte Carlo)
- 拉斯维加斯(Las Vegas)
- 舍伍德(Sherwood)
2. 步骤
- 将问题 转化为几何图形$S ,通过图形面积计算,,,问题的结果往往是几何图形的某一部分S1$的面积
- 然后,向几何图形随机撒点
- 统计几何图形S,S1 的点数,通过面积关系和点数来计算结果
- 判断上面结果是不是需要精度之内,如果不是重复步骤2
3. 实例
- 蒙特卡罗计算圆周率
如果还有时间,将继续更新
posted @
2019-05-15 20:42
Firewine
阅读(
946)
评论()
编辑
收藏
举报