Java对数
java对数
先看看Java源码里的对数函数(在Java.lang.Math里)
方法1:log()
作用:返回以自然常数e为底数的对数值
说明:
e ≈ 2.71828 18284 59045 23536 02874 71352 66249 77572 47093 69995 95749 66967 62772 40766 30353 54759 45713 82178 52516 64274
public static double log(double a) {
return StrictMath.log(a); // default impl. delegates to StrictMath
} /**
* Returns the base 10 logarithm of a value.返回10为底的对数
*
***Special cases特别注意:
*
* 1.If the argument is NaN or less than zero, then the result is NaN.非数或小于0返回NAN
* 2.If the argument is positive infinity, then the result is positive infinity. 正无穷,返回正无穷
* 3.If the argument is positive zero or negative zero, then the result is negative infinity. 参数是正负0,返回负无穷
* 4. If the argument is equal to 10 ^n for integer n, then the result is n.
*
*/
方法2:log10()
作用:返回以10为底数的对数值
public static double log10(double a) {
return StrictMath.log10(a); // default impl. delegates to StrictMath
} /** Returns the correctly rounded positive square root of a
* value.
* Special cases:
* If the argument is NaN or less than zero, then the result is NaN.
* If the argument is positive infinity, then the result is positive infinity.
* If the argument is positive zero or negative zero, then the
* result is the same as the argument.
* Otherwise, the result is the value closest to
* the true mathematical square root of the argument value.
* @return the positive square root of .
*If the argument is NaN or less than zero, the result is NaN.
*/
*翻译:
*特殊情况: *如果参数是NA或小于零,则结果是楠。 *如果参数是正无穷大,则结果是正无穷大。 *如果参数为正零或负零点,则 *结果与论点相同。 *否则,结果是最接近的值。 *参数值的真正数学平方根。 *@返回正平方根。 *如果参数是NA或小于零,则结果是楠。 */
如果不能理解特别注意的几条,看图:
那么问题来了,怎样实现求任意正底数的对数?
(注意:底数>0,底数不等于1)
先来看看换底公式:
log(a) b=log (c) b÷log (c) a ,即:
有了换底公式,我们就可以将任意其他底数换成jvm支持的底数e或10:
public class Logarithm {
public int log(double value, int base){
return (int)(Math.log(value)/Math.log(base));//换成了底数e
}
}
Java对数的更多相关文章
- java对数计算
Java对数函数的计算方法非常有问题,然而在API中却有惊人的误差.但是假如运用了以下的方法,用Java处理数字所碰到的小麻烦就可以轻而易举的解决了. Sun的J2SE提供了一个单一的Java对数方法 ...
- Java对数函数及Java对数运算
Java对数函数及Java对数运算 2010-05-17 10:32 中国IT实验室 佚名 关键字:Java Java对数函数的计算方法非常有问题,然而在API中却有惊人的误差.但是假如运用了 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 对数的操作 开始我的JAVA历程
package Text; public class Sumn { public static void main (String args[]){ System.out.println(" ...
- Java多线程 3 线程同步
在之前,已经学习到了线程的创建和状态控制,但是每个线程之间几乎都没有什么太大的联系.可是有的时候,可能存在多个线程多同一个数据进行操作,这样,可能就会引用各种奇怪的问题.现在就来学习多线程对数据访问的 ...
- 八大排序算法Java
目录(?)[-] 概述 插入排序直接插入排序Straight Insertion Sort 插入排序希尔排序Shells Sort 选择排序简单选择排序Simple Selection Sort 选择 ...
- 数据结构Java实现01----算法概述
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Java面试宝典系列之基础排序算法
本文就是介绍一些常见的排序算法.排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序.选择排序.冒泡排 ...
- Java经典兔子问题
题目:古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:首先我们要明白题目的意思指的是每个月的兔子总对数:假设将兔子分为小 ...
随机推荐
- 最好用的js前端框架、组件、文档在线预览插件
这里收集的都是个人认为比较好的js框架.组件 js前端ui框架 此处列举出个人认为最好的几个框架(排序即排名),现在好点的框架商用都需要付费,以下几个也不例外,但是由于组件丰富,都可以作为企业应用的完 ...
- 第25月第26天 dispatch_group_t dispatch_semaphore_t
1. dispatch_group_enter(group); dispatch_group_leave(group); dispatch_group_notify(group1, queue1,bl ...
- Coconuts HDU - 5925 (二维离散化求连通块的个数以及大小)
题目链接: D - Coconuts HDU - 5925 题目大意:首先是T组测试样例,然后给你n*m的矩阵,原先矩阵里面都是白色的点,然后再输入k个黑色的点.这k个黑色的点可能会使得原先白色的点 ...
- mongodb系列~ mongodb慢语句(1)
1 简介:讲讲mongo的慢日志2 慢日志类型 query insert update delete 3 查看慢日志 1 db.system.profile.find() 慢日志总揽 2 d ...
- TensorFlow架构学习
0 - TensorFlow 基于数据流图,节点表示某种抽象计算,边表示节点之间联系的张量. Tensorflow结构灵活,能够支持各种网络模型,有良好的通用性和扩展性. 1 - 系统概述 Tenso ...
- 嵌入式开发平台迅为iTOP-4412开发板-ssh常见问题以及解决方法
一.基本网络,软件安装以及配置 ssh 软件无法登陆 Ubuntu,有可能是网络不通.SSH 软件未安装.环境变量没配置.防 火墙未关闭等. 1. 网络连接 使用 ssh 传输文件的前提是网络顺畅,即 ...
- Nginx系列5:从网络原理来看SSL安全协议
1.TLS/SSL发展 2.TLS安全密码套件解读
- 解决 Qt5 报错 This application failed to start because it could not find or load the Qt platform plugin
QT为了简化生成发布版本,特别提供了工具 "windeplayqt.exe",这个工具在 "...\Qt5.8.0\5.8\msvc2015_64\bin"的目 ...
- Hadoop配置文件参数详解
core-site.xml <configuration> <property> <name>hadoop.tmp.dir</name> <val ...
- python,os方法的简单介绍
''' 这一个章节是学习os及os.path的用法 ''' #学习os首先需要引入os文件,imoprt os import os #getcwd()的用法,它是返回当前的工作目录,说白了就是你的程序 ...