穷举算法

先来了解一下什么是穷举算法:

穷举算法是一种最简单的一种算法,其依赖于计算机的强大计算能力来穷尽每一种可能的情况,从而达到

求解的目的。穷举算法效率不高,但适用于一些没有明显规律可循的场合。

 

穷举算法的基本思想:

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;
}

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值