穷举法则 穷举法
大家好,我是小典,我来为大家解答以上问题。穷举法则,穷举法,很多人还不知道,现在让我们一起来看看吧!
1、用穷举法解题时,就是按照某种方式列举问题答案的过程。针对问题的数据类型而言,常用的列举方法一有如下三种:
2、(1)顺序列举 是指答案范围内的各种情况很容易与自然数对应甚至就是自然数,可以按自然数的变化顺序去列举。
3、(2)排列列举 有时答案的数据形式是一组数的排列,列举出所有答案所在范围内的排列,为排列列举。
4、(3)组合列举 当答案的数据形式为一些元素的组合时,往往需要用组合列举。组合是无序的。
5、例子如下:在公元五世纪我国数学家张丘建在其《算经》一书中提出了“百鸡问题 ”:
6、“鸡翁一值钱5,鸡母一值钱3,鸡雏三值钱1。百钱买百鸡,问鸡翁、母、雏各几何?”这个数学问题的数学方程可列出如下:
7、Cock+Hen+Chick=100
8、Cock*5+Hen*3+Chick/3=100
9、显然这是个不定方程,适用于穷举法求解。依次取Cock值域中的一个值,然后求其他两个数,满足条件就是解。
10、该问题的C语言程序算法如下:
11、int Cock,Hen,Chick; /*定义公鸡,母鸡,鸡雏三个变量*/
12、Cock=0;
13、while (Cock<=19) /*公鸡最多不可能大于19*/
14、{ Hen=0;
15、whlie (Hen<=33) /*母鸡最多不可能大于33*/
16、{Chick=100-Cock-Hen;
17、if (Cock*15+Hen*9+Chick==300)/*为了方便,将数量放大三倍比较*/
18、printf( 公鸡=%d 母鸡=%d 雏鸡=%d,Cock,Hen,Chick);
19、Hen=Hen+1;
20、}
21、Cock=Cock+1;
22、}
本文到此讲解完毕了,希望对大家有帮助。