蛮力法
蛮力法是利用计算机运行速度快这一个特性。把问题所有的情况或所有的过程交给计算机逐一尝试,从中找出问题的解。
策略:枚举(穷举)
根据问题的条件将可能的情况一 一列举起来,逐一尝试找出问题的解。有时问题的规模太大,可以排除一些明显不合理的情况。
枚举法的一般规律:
找出枚举范围:分析问题所涉及的所有情况。
找出约束条件:分析问题的解需要满足的条件,并用逻辑表达式解释。
对枚举法的优化主要是对约束范围和约束条件的数学优化。
百钱百鸡
问题:
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
分析:
隐含约束条件:Z%3 = 0,因为鸡肯定是整只的(肯德鸡除外)。所以鸡仔的个数是3的倍数。
算法:
注意:计算机中遇到除法要小心!
/*
Name:
Copyright:
Author:
Date: 20/12/17 17:26
Description:
百钱百鸡问题
*/
#include <stdio.h>
#include <stdlib.h>
void Two(){
int x,y;
//枚举次数2000/3
for(x=0;x<100/5;x++){
//约束范围
for(y=0;y<100/3;y++){
//约束范围
if(x*5+y*3+(100-x-y)/3==100&&(100-x-y)%3==0){
//约束条件
printf("%d翁%d母%d雏\n",x,y,100-x-