我是靠谱客的博主 平常钢笔,最近开发中收集的这篇文章主要介绍穷举,百鸡问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

穷举

遇到一个问题,找不到更好的办法(找不到数学公式或者规律)时,使用“最笨”的办法,利用计算机速度快的特点,将所有的可能性全部列出来,并将我们想要得到的效果记录下来

例如百鸡问题:

/*
 百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡邹三,
 * 值钱一。百钱买鸡,问鸡翁、鸡母和鸡邹各几何。
 * 鸡翁cock
 * 鸡母 hen
 * 鸡雏 chicken
 * cock+hen+chicken=100;
 * cock*5+hen*3+chicken/3 =100;
 */
    for(var cock=0;cock<=20;cock++){
        for(var hen=0;hen<=33;hen++){
            var chicken =100-cock-hen;
            if(100==cock*5+hen*3+chicken/3){
                document.write("鸡翁一共"+cock+"鸡母一共"+hen+"小鸡一共"+chicken+"<br>");
            }
        }
    }

穷举方法的特点是算法简单,相应的程序也简单,但计算量往往很大,但是计算机的优势就是运算速度快,所以此算法可以扬长避短,往往可以取得不错的效果

比如:一个三位数,个位大于百位,百位大于个位,并且各个数之和等于

8.5递归

所谓递归,就是在函数内部又去调用自己

例如:求阶乘问题,在fact函数内部又去调用fact函数

function fact(n){
    if(1==n){
        return 1;
    }
    return n*fact(n-1);
}
alert(fact(5));

递归的算法如果按照常规思路去理解是非常复杂的,函数调用一层一层嵌套调用,然后又一层一层返回。不妨慌思路去理解递归

递归实际上就是将规模为你的问题降阶为n-1的问题进行求解。也就是去找nn-1关系

 

最后

以上就是平常钢笔为你收集整理的穷举,百鸡问题的全部内容,希望文章能够帮你解决穷举,百鸡问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部