穷举算法+百元买百兔、洗牌问题

穷举算法+百元买百兔、洗牌问题

穷举思想穷举法就是针对问题可能出现的结果,对其逐个进行测验并得出是否为符合要求的结果,穷举法也是许多高级算法中的某个部分。有点像高中数学里面的对问题进行分类讨论的过程中,寻找所有的情况的异曲同工之处。两部分组成系统化地枚举问题各种可能的候选解检查验证每一个候选解是否满足问题的求解要求穷举的抽象...

2020年9月17日
277字
13 阅读

穷举思想

穷举法就是针对问题可能出现的结果,对其逐个进行测验并得出是否为符合要求的结果,穷举法也是许多高级算法中的某个部分。有点像高中数学里面的对问题进行分类讨论的过程中,寻找所有的情况的异曲同工之处。

两部分组成

  1. 系统化地枚举问题各种可能的候选解
  2. 检查验证每一个候选解是否满足问题的求解要求

穷举的抽象算法伪代码

百元买百兔问题

洗牌问题

问题思路

  • 在1~n-1当中随机选择一个数k1,将其与第n个数互换;
  • 在1~n-2当中随机选择一个属k2,将其与第n-1个数互换;
  • 在第i轮之后,1~n-(i-1)当中选择一个数ki,将其与第n-(i-1)个数互换;

代码思路

  • 在区间之间随机数的生成
  • 交换函数
  • 泛型:支持各种类型数据的“洗牌”


文章评论区

欢迎留言交流

未登录,请先注册或登录后发表评论。

Leave comment