我是靠谱客的博主 干净咖啡,最近开发中收集的这篇文章主要介绍算法--枚举法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

枚举法

枚举(Enumuerate)是蛮力策略的一种表现,最普遍的思维方式。它根据问题中的条件将可能的情况一一列举出来,逐一尝试从中找到满足问题条件的解。

  • 找出枚举范围
  • 找出约束条件

优点: 算法简单,在局部地方使用枚举法,效果十分的好
缺点: 运算量过大,当问题的规模变大的时候,循环的阶数越大,执行速度越慢

示例: 百钱百鸡问题
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
{ x + y + z = 100 5 x + 3 y + z 3 = 100 begin{cases} x + y + z = 100\ 5x + 3y + frac{z}{3} = 100 end{cases} {x+y+z=1005x+3y+3z=100

function f () {
    for (let x = 0; x <= 20; x++) {
    	for (let y = 0; y <= 33; y++) {
    		for (let z = 0; z <= 100; z++) {
    			if (x + y + z === 100 && 5 * x + 3 * y + z/3 === 100) {
    				console.log(x, y, z)
    			}
    		}
    	}
    }
}

优化算法, z = 100 − x − y z = 100 - x - y z=100xy

function f () {
    for (let x = 0; x <= 20; x++) {
    	for (let y = 0; y <= 33; y++) {
            let z = 100 - x - y
            if (z % 3 === 0 && 5 * x + 3 * y + z/3 === 100) {
                console.log(x, y, z)
            }
    	}
    }
}

最后

以上就是干净咖啡为你收集整理的算法--枚举法的全部内容,希望文章能够帮你解决算法--枚举法所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部