先来了解一下什么是穷举算法:
穷举算法是一种最简单的一种算法,其依赖于计算机的强大计算能力来穷尽每一种可能的情况,从而达到
求解的目的。穷举算法效率不高,但适用于一些没有明显规律可循的场合。
穷举算法的基本思想:
1.对于一种可能的情况,计算其结果。
2.判断结果是否满足要求,如果不满足,则执行第(1)步来搜索下一个可能的情况;如果满足要求,则表
示找到正确答案。
下面来用一个例子来实现穷举算法:
鸡兔同笼问题:
一个笼子里关有鸡兔共35头,一共94只脚,笼中鸡兔各有多少只。
//穷举算法,head为头数,foot为脚数,chicken保存鸡的头数,rabbit保存兔的头数
int Exhaustion(int head, int foot, int *chicken, int *rabbit)
{
int re, i, j;
re = 0;
for (i = 0; i <= head; i++)
{
j = head - i;
if (i * 2 + j * 4 == foot) //判断条件
{
re = 1;
*chicken = i;
*rabbit = j;
}
}
return re;
}
int main()
{
int chicken, rabbit, head, foot;
int re;
cout << "穷举法法解决鸡兔同笼问题: " << endl;
cout << "输入头数: ";
cin >> head;
cout << "输入脚数: ";
cin >> foot;
re = Exhaustion(head, foot, &chicken, &rabbit);
if (re == 1)
cout << "鸡有: " << chicken << "只,兔子有: " << rabbit << "只。" << endl;
else
cout << "无法求解" << endl;
system("pause");
return 0;
}