穷举算法

概念:

最简单算法,依赖计算机的强大计算能力穷尽每一种可能的情况。穷举算法效率不高,但是适合一些没有明显规律可循的场合。

思想:

在使用穷举算法时,需要明确问题答案的范围,这样才可能在指定范围搜索答案。指定范围之后,就可以使用循环和条件判断语句进行逐步验证结果了。

案例:鸡兔同笼问题

在一个笼子里关着若干只鸡和若干兔子。一共有35个头,和94只脚。问在一个笼子里鸡和兔子各有多少个。

packagecmd.chengxuyuanzhilu.arithmetic;importjava.util.Scanner;/***@author微信公众号:程序员之路

* 博客:http://www.cnblogs.com/chengxuyuanzhilu/* 穷举算法*/

public classExhaustion {public static void exhaustion(int head,intfoot){intchicken,rabbit;for(chicken=0;chicken<= head;chicken++){

rabbit=head-chicken;if(chicken*2+rabbit*4 ==foot){

System.out.println(String.format("鸡有 %d只,兔子有%d只", chicken,rabbit));

}

}

}

@SuppressWarnings("resource")public static voidmain(String[] args) {inthead,foot;

System.out.println("穷举算法解决鸡兔同笼问题");

System.out.println("输入头的个数");

Scanner scanner= newScanner(System.in);

head=scanner.nextInt();

System.out.println("输入腿的个数");

foot=scanner.nextInt();

exhaustion(head, foot);

}

}

递推算法

概念:

递推算法在数学计算等方面广泛应用。递推算法适合有着明显规律的场合

思想:

递推算法往往需要用户知道答案和问题之间的逻辑关系。在许多数学问题中,都有着明显的计算公式可以遵循,因此可以采用递推算法。

案例:兔子产崽子的问题

如果有两个月大的兔子以后每个月都可以产一对小兔子,而一对小兔子出生两个月后可以在生小兔子,也就是1月份出生,3月份才可以产崽子。那么假定一年内没有发生死亡事件,那么现在有一对小兔子一年后共有多少对兔子。

案例分析:

1月1对兔子

2月1对兔子

3月2对兔子 一对成熟兔子

4月3对兔子

5月5对兔子 两对成熟兔子

6月8对兔子 三对成熟兔子

。。。。。。

规律:前两个月都是一对兔子,以后每个月的兔子的对数是前两个月的总和

除1,2月份的计算公式:n月Fn = (Fn-1)+(Fn-2)

packagecmd.chengxuyuanzhilu.arithmetic;importjava.util.Scanner;/***@author微信公众号:程序员之路

* 博客:http://www.cnblogs.com/chengxuyuanzhilu/* 递推算法*/

public classRecurrence {public static int recurrence(intmonths){if( months == 1 || months == 2){return 1;

}else{int m1 = recurrence(months-1);int m2 = recurrence(months-2);return m1+m2;

}

}

@SuppressWarnings("resource")public static voidmain(String[] args) {intmonths,rabbits;

System.out.println("递推算法解决兔子生崽子的问题");

System.out.println("输入月数");

Scanner scanner= newScanner(System.in);

months=scanner.nextInt();

rabbits=recurrence(months);

System.out.println(String.format("%d月共有兔子%d对", months,rabbits));

}

}

java穷举密码_穷举算法和递推算法(Java)相关推荐

  1. java递推_Java算法-递推算法思想

    递推算法是常用的算法思想,在数学计算等方面有着广泛的应用.递推算法适合有着明显公式的规律场合. 一.递推算法基本思想 递推算法是一种理性思维模式的代表,其根据已有的数据和关系,逐步推导而得到结果.递推 ...

  2. 程序设计典型算法之递推法

    程序设计典型算法之递推法 一时兴起,刚吃完晚饭,突然又想写点东西,可能太久没有写东西了吧! 问题:小猴吃桃问题.小猴在一天内摘了若干桃子,当天吃掉一半多一个:第二天吃掉剩下的一半桃子多一个:以后每天都 ...

  3. 递推算法与递推套路(手撕算法篇)

    联系我们:有道技术团队助手:ydtech01 / 邮箱:[ydtech@rd.netease.com] 之前学习基础知识的时候也说了,递推和动态规划有这暧昧不清的关系,可以说,动态规划就是多了一个决策 ...

  4. 递推算法与递推套路(算法基础篇)

    联系我们:有道技术团队助手:ydtech01 / 邮箱:[ydtech@rd.netease.com] 相信了解算法同学经常会说动态规划太难了,看到题目完全不知从何下手,或者是说"一看题解就 ...

  5. 递推java_Java算法-递推算法思想

    递推算法是常用的算法思想,在数学计算等方面有着广泛的应用.递推算法适合有着明显公式的规律场合. 一.递推算法基本思想 递推算法是一种理性思维模式的代表,其根据已有的数据和关系,逐步推导而得到结果.递推 ...

  6. java实现数据结构基数排序_数据结构与算法——基数排序简单Java实现

    1 packageahe.sort;2 3 importjava.io.BufferedReader;4 importjava.io.IOException;5 importjava.io.Input ...

  7. java学习文档_资深程序员带你深入了解JAVA知识点,实战篇,PDF文档

    JAVA 集合JAVA 集合面对浩瀚的网络学习资源,您是否为很难找到适合自己的学习资源而感到苦恼过?那么,您来对地方了.在这里我们帮助大家整理了一份适于轻松学习 Java 文章的清单.JVM 文字太多 ...

  8. java时间规划书_【计算机本科补全计划】Java学习笔记(九) Java日期时间

    正文之前 终于好像仿佛看完了菜鸟教程的Java课程,感觉自己收获颇丰!很好,Java看完之后正愁如何开始进阶呢!结果发现菜鸟还准备了Java实例这种好东西!简直就是教程界的良心啊 !!!没事,先写写笔 ...

  9. java无ide编译_[转]无IDE时编译和运行Java

    本文由 ImportNew - Grey 翻译自 dzone.欢迎加入Java小组.转载请参见文章末尾的要求. 最近Java subreddit出现了一篇"在没有IDE的情况下编译Java包 ...

最新文章

  1. 实现后台检控并关闭进程的批处理
  2. 折纸机器人的步骤图解_折纸图解飞机
  3. 建立项目的webpack简单配置
  4. 我们的2009 梦想照进了现实
  5. UA SIE545 优化理论基础4 对偶理论简介5 对偶的几何解释
  6. javascript中setTimeout()函数
  7. Retrofit网络请求参数注解,@Path、@Query、@Post、Body等总结(超级实用)以及以Json格式和form-data格式提交数据
  8. CCNA,CCNP资料
  9. 过滤器过滤特定的url_如何从过滤器中排除URL
  10. 计算机二级web题目(5)--js(Javascript)基础
  11. python大学什么专业学校_好学校的差专业和一般大学的好专业,该怎么选?我来说真话……...
  12. [转]使用xcode4 workspace 多个project协同工作
  13. 操作系统—基本分页存储管理的基本概念
  14. Sketch 76 for mac(矢量绘图设计软件)
  15. 51Nod 1131 - 覆盖数字的数量(分类讨论)
  16. 2004-7-21/22+ DataGrid知识整理
  17. 项目管理计划_通用模板
  18. 项目经理应该知道的五种项目管理工具
  19. 少儿编程 电子学会图形化编程等级考试Scratch三级真题解析(判断题)2022年6月
  20. Python 三大神器:pip,virtualenv(virtualenvwrapper),fabric

热门文章

  1. vcruntime140_1.dll丢失的解决方法
  2. 十年如一日 倡领孝老敬老风尚
  3. 软件产品登记证书和软著区别 软件产品登记证书怎么申请
  4. 加密芯片SMEC98SP(SE98)使用之一
  5. 织梦dedecms手机上,自动跳转到/m目录mobile手机版h5页面
  6. 2021年R1快开门式压力容器操作考试题及R1快开门式压力容器操作最新解析
  7. linux内核netfilter,linux内核netfilter实现url重定向
  8. 仪器控制 之 GPIB总线
  9. 2023年元旦倒计时js雪花代码
  10. DragRow-GYF