仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 395|回复: 8
打印 上一主题 下一主题

[学习教程] 发布一篇Java Math 类中的新功效,第 1 部分: 实数

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。
偶然候您会对一个类熟习到健忘了它的存在。假如您可以写出java.lang.Foo的文档,那末Eclipse将匡助您主动完成所需的函数,您无需浏览它的Javadoc。比方,我利用java.lang.Math(一个我自以为十分懂得的类)时就是如许,但令我受惊的是,我比来偶尔读到它的Javadoc——这多是我近五年来第一次读到,我发明这个类的巨细几近翻了一倍,包括20种我历来没传闻过的新办法。看来我要对它刮目相看了。
Java™言语标准第5版向java.lang.Math(和它的姊妹版java.lang.StrictMath)增加了10种新办法,Java6又增加了10种。在本文中,我重点会商个中的对照单调的数学函数,如log10和cosh。在第2部分,我将切磋专为操纵浮点数(与笼统实数相反)而计划的函数。
笼统实数(如π或0.2)与Javadouble之间的区分很分明。起首,数的幻想形态是具有没有限的精度,而Java暗示法把数限定为固定位数。在处置十分年夜和十分小的数时,这点很主要。比方,2,000,000,001(二十亿零一)能够准确暗示为一个int,而不是一个float。最靠近的浮点数暗示情势是2.0E9—即两亿。利用double数会更好,由于它们的位数更多(这是应当老是利用double数而不是float数的来由之一);但它们的精度仍旧遭到必定限定。
盘算机算法(Java语言和其他言语的算法)的第二个限定是它基于二进制而不是十进制。1/5和7/50之类的分数可用十进制准确暗示(分离是0.2和0.14),但用二进制暗示时,就会呈现反复的分数。好像1/3在用十进制暗示时,就会变成0.3333333……以10为基数,任何分母仅包括质数因子5和2的分数都能够准确暗示。以2为基数,则只要分母是2的乘方的分数才能够准确暗示:1/2、1/4、1/8、1/16等。
这类不准确性是急切必要一个math类的最次要的缘故原由之一。固然,您能够只利用尺度的+和*运算符和一个复杂的轮回来界说三角函数和其他利用泰勒级数睁开式的函数,如清单1所示:
清单1.利用泰勒级数盘算正弦
  1. publicclassSineTaylor{publicstaticvoidmain(String[]args){for(doubleangle=0;angle<=4*Math.PI;angle+=Math.PI/8){System.out.println(degrees(angle)+"        "+taylorSeriesSine(angle)+"        "+Math.sin(angle));}}publicstaticdoubledegrees(doubleradians){return180*radians/Math.PI;}publicstaticdoubletaylorSeriesSine(doubleradians){doublesine=0;intsign=1;for(inti=1;i<40;i+=2){sine+=Math.pow(radians,i)*sign/factorial(i);sign*=-1;}returnsine;}privatestaticdoublefactorial(inti){doubleresult=1;for(intj=2;j<=i;j++){result*=j;}returnresult;}}
复制代码
<p>
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。
柔情似水 该用户已被删除
沙发
发表于 2015-1-20 16:02:02 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-29 12:48:44 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
小魔女 该用户已被删除
地板
发表于 2015-2-4 21:52:09 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
因胸联盟 该用户已被删除
5#
发表于 2015-2-10 18:38:43 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
再见西城 该用户已被删除
6#
发表于 2015-3-1 13:47:45 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
简单生活 该用户已被删除
7#
发表于 2015-3-10 18:08:48 | 只看该作者
是一种突破用户端机器环境和CPU
再现理想 该用户已被删除
8#
 楼主| 发表于 2015-3-17 09:04:46 | 只看该作者
是一种使用者不需花费很多时间学习的语言
蒙在股里 该用户已被删除
9#
发表于 2015-3-24 04:10:19 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表