文章目录

  • 一、蛮力算法简介
  • 二、蛮力--枚举法
    • 题目及运行
  • 三、总结

前言

算法语言--Java语言


一、蛮力算法简介

蛮力法是基于计算机运算速度快这一特性,在解决问题时采取的一种”懒惰“策略。这种策略不经过(或者说是经过很少的思考),把问题的所有情况或者所有过程交给计算机去一一尝试,从中找出问题的解。蛮力策略的应用很广,具体表现形式各异。

数据结构课程中学习的一些算法:选择排序,冒泡排序,插入排序,顺序查找等,都是蛮力策略的具体应用!


二、蛮力--枚举法

1、枚举法简介

枚举法是蛮力策略的一种表现形式,也是一种使用非常普遍的思维方式,它是根据问题中的条件将可能的情况一一列举出来,逐一尝试中找出满足问题条件的解。但有时一一列举出的情况数目很大,如果超出了所能忍受的范围,则需要进一步考虑,排除一些明显不合理的情况,尽可能减少问题可能解的枚举数目。

2-1枚举实例

百钱百鸡问题:一百块钱去买一百只鸡,公鸡一只值5块钱,母鸡一只值3块钱,小鸡1块钱可以买三只,请问100块可以买公鸡,母鸡,小鸡各多少只?

方法:找出枚举范围,找出约束条件 

尝试范围:由题意给定共100块钱要买鸡,若全买公鸡最多买100/5=20只,显然x的范围在1~20之间;同理,y的取值范围在1~33之间,z的范围在1~100之间!

约束条件:鸡要有100只,钱要有100块

x+y+z=100且5x+3y+z/3=100;

2-1代码实现

package Javaclass;
import java.util.*;
public class Practice {public static void main(String[] args){for(int x=1;x<=20;x++){for(int y=1;y<=33;y++){int z = 100-x-y;if(5*x+3*y+z/3==100&&z%3==0){System.out.println("公鸡:"+x+"\t母鸡:"+y+"\t小鸡:"+z);}}}}
}


2-2枚举实例

 求3个数的最小公倍数:最小数刚好能整除三个数。例如:13和7的最小公倍数是91。

方法: 暴力求解,从2开始往上累加,直到找出即可

尝试范围:1、2,3,4.....

约束条件:找到最小就停止

2-2代码实现

package Javaclass;
import java.util.*;
public class Practice {public static void main(String[] args){Scanner in = new Scanner(System.in);int a = in.nextInt();int b = in.nextInt();int c = in.nextInt();for(int i=1;i<=a*b*c;i++){if(i%a==0&&i%b==0&&i%c==0){System.out.println("最小公倍数为:"+i);break;}}}
}


三、总结

算法说明:蛮力算法不需要思考,只用按照题目的要求定位条件和范围即可,算法虽然简单易懂,但一旦遇到较大的数据时,运行的效率会非常低,可能还会跑不出来。

由此我们要注意:在对运行效率要求较高的大规模的数据处理问题时,必须多动脑筋找出效率较高的数学模型及其对应的算法。

算法设计与分析--蛮力法相关推荐

  1. 算法设计与分析------蛮力法

    算法设计与分析------蛮力法(c语言) 一.蛮力法(穷举法 枚举法) 1.定义 2.蛮力法使用情况 3.蛮力法的优点 4.蛮力法的缺点 5.采用蛮力法设计算法的2类: 6.简单选择排序和冒泡排序 ...

  2. 算法设计与分析—蛮力法

    蛮力法 蛮力法概述 蛮力法也称穷举法(枚举法)或暴力法,是一种简单的直接解决问题的方法,通常根据问题的描述和所涉及的概念定义,对问题所有可能的状态(结果)一一进行测试,直到找到解或将全部可能的状态都测 ...

  3. 算法设计与分析之蛮力法

    文章目录 前言 一.蛮力法设计思想 二.对蛮力法的思考 三.蛮力法的优缺点 四.使用蛮力法的几种情况 五.蛮力法设计步骤 六.蛮力法示例 总结 前言 大家好,我是一只勤勤恳恳的程序猿.本篇文章小猿将跟 ...

  4. 算法分析学习笔记二 蛮力法

    算法设计与分析之二 蛮力法 目录 1.蛮力法的设计思想 2.蛮力法优点 3. 冒泡排序分析 4. 选择排序分析 5. 蛮力法中冒泡排序与选择排序的时间空间复杂度分析 6. 蛮力法C语言实现 7. 算法 ...

  5. 计算机算法设计与分析教学大纲,算法设计与分析的教与学(教学大纲)

    原标题:算法设计与分析的教与学(教学大纲) 课程代码:**** 课程负责人: **** 课程中文名称:算法设计与分析 课程英文名称:Designand Analysis of Algorithms 课 ...

  6. 算法设计与分析100例子(C语言版)

    算法设计与分析100例子 循环与递归 标题 算法与数据结构 优化算法的基本技巧 优化算法的数学模型 迭代算法 [例1]兔子繁殖问题 蛮力法 循环与递归 标题 算法与数据结构 优化算法的基本技巧 优化算 ...

  7. 软件算法设计与分析 期中复习

    软件算法设计与分析 期中复习 第四章 蛮力法 蛮力法/多项式求值 最近点对问题 蛮力法的优缺点 旅行推销商问题 背包问题 分配问题 穷举法特点 第五章 分治法 5.1 分治法的基本思想 5.2 寻找最 ...

  8. 算法设计与分析课程的时间空间复杂度

    算法设计与分析课程的时间空间复杂度: 总结 算法 时间复杂度 空间复杂度 说明 Hanoi $ O(2^n) $ $ O(n) $ 递归使用 会场安排问题 \(O(nlogn)\) \(O(n)\) ...

  9. 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述

    晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...

最新文章

  1. OSChina 周六乱弹 ——土肥圆装高富帅相亲节目现场拆穿
  2. 函数计算支持 MySQL 实例绑定
  3. 大学c语言课程及答案,某大学《C语言程序设计》课程考试试卷(含答案).doc
  4. C和指针之函数之求参数列表中的最大值
  5. java中的codereview
  6. C++ 查看输入流中的下一个字符
  7. 将一个包含汉字的字符串逐个转化为数字,并得出该字符串的十进制和
  8. Segment Advisor
  9. 使用docker+tomcat部署jenkins
  10. xpraid安装_在Win2003/XP安装光盘中集成RAID驱动 不用软驱装RAID/SATA/SAS驱动
  11. php在线拍照代码,html5可以实现在线拍照了
  12. C/C++编程:仿函数
  13. 慕课网付费视频 linux,分享给 Linux 用户的 10 有用工具
  14. Linux Kernel compile
  15. 为什么时钟和复位信号要在综合阶段设置为set_drive 0和set_dont_touch_network
  16. 朋友圈加粗字体数字_利用Stylus插件让Chrome有macOS的字体渲染效果
  17. 系统检测到您疑似使用网页抓取工具访问本_12款最常使用的网络爬虫工具推荐...
  18. Ubuntu安装使用Krita
  19. QQ能上网,浏览器打不开网页,怎么办?
  20. 苹果cms是什么东西?

热门文章

  1. 微信小程序wx.login()登录
  2. Vue 第三方集成之 Cesium
  3. codeforces 698A Vacations
  4. python office365_python office365创建会议甚至
  5. DEV 的使用技巧(开学季)
  6. flask_sqlalchemy迁移数据库出错Context impl MySQLImpl. Will assume non-transactional DDL. No changes in sche
  7. 使用gzip优化web应用(filter实现)
  8. Redis高可用解决方案:sentinel(哨兵模式)和集群
  9. 推荐个将其他文档转为pdf的软件:Nitro PDF Creator
  10. 枚举 暴力枚举 穷举 实例