数据结构与算法之蛮力(穷举)算法
蛮力法是基于计算机运算速度快这一特性,在解决问题时采用的一种“惰性”的策略。这种策略不经过(或者说是经过很少的)思考,把问题的所有情况或所有过程交给计算机去一一尝试,从中找出问题的解。蛮力算法的应用很广。
枚举法(穷举法)是蛮力算法的一种,它对可能解的众多候选解按某种顺序逐一枚举和检验,并从中找出那些符合要求的候选解作为问题的解。
这种方法简单易行,尤其是对于一时想不出更好的解法的问题,不失为一种补救的好方法。但是,这种方法只能解决变量个数有限,而且每个变量可取值个数也很有限的情况,否则会造成“指数爆炸”,在计算机上难以实现。
用枚举法解决问题,通常可以从两个方面进行算法设计。
找出枚举范围:分析问题所涉及的各种情况。
找出约束条件:分析问题的解需要满足的条件,并用逻辑表达式表示。
寻规律问题
寻找规律数字:将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
#include<iostream>
using namespace std;
int main(){
for(int j, i=123;i<327;i++) {
int a[10]={
0};
a[i/100]++;a[i%100/10]++;a[i%10]++;
a[i*2/100]++;a[i*2%100/10]++;a[i*2%10]++;
a[i*3/100]++;a[i*3%100/10]++;a[i*3%10]++<

本文深入探讨了蛮力算法中的枚举法(穷举法),通过三个具体问题——数字三角形、接水问题和寻规律数字的求解,展示了如何运用穷举策略设计算法。遇到有限变量和值的场景,穷举法是一种实用的补充手段,但需注意其在复杂问题上的效率问题。
算法&spm=1001.2101.3001.5002&articleId=115532137&d=1&t=3&u=45ae2c65518b49de858dc72cd6e9a020)
5297

被折叠的 条评论
为什么被折叠?



