Java中自己如何实现log2(N)
目录
- Java 实现log2(N)
- 换底公式:
- 实现为:
- log以2为底的对数
Java 实现log2(N)
在刷题过程中需要使用到log2(N),但是java中只有log(double),log10(double)等等函数,这时用换底公式就可以自己实现log2(N).
换底公式:
所以:log2N=logeN/loge2,logeN代表以e为底的N的对数,loge2代表以e为底的2的对数。
实现为:
public double log2(double N) { return Math.log(N)/Math.log(2);//Math.log的底为e }
log以2为底的对数
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
自己写的简易版Java日志类分享
/** * */ import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author magic282 * */ public class Logger { private static String logFilePath; private static boolean
-
详解记录Java Log的几种方式
在Java中记录日志的方式有如下几种: 一.System.out.println(最简单) 1.输出到控制台:System.out.println("XXX"); 2.输出到指定文件: import java.io.PrintStream; PrintStream ps = new PrintStream("D:\\test.txt"); System.setOut(ps); System.out.println("XXX"); 二.java.u
-
SpringBoot继承LogStash实现日志收集的方法示例
一.环境准备 安装Elasticsearch.kibana.logstash,教程链接 安装教程 二.配置SpringBoot 依赖 在springBoot 项目下pom文件增加logStash 依赖包 <!--logStash--> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId>
-
Java中自己如何实现log2(N)
目录 Java 实现log2(N) 换底公式: 实现为: log以2为底的对数 Java 实现log2(N) 在刷题过程中需要使用到log2(N),但是java中只有log(double),log10(double)等等函数,这时用换底公式就可以自己实现log2(N). 换底公式: 所以:log2N=logeN/loge2,logeN代表以e为底的N的对数,loge2代表以e为底的2的对数. 实现为: public double log2(double N) { return Math.log(
-
Java中求Logn/log2 的精度问题
目录 java求Logn/log2精度 例如 程序如下: java 处理高精度计算 使用的BigDecimal类的时候需要注意的地方: java求Logn/log2精度 经过本人测试,java 中 , 一直到 2的492 次方(这么大的数,平时够用了) :用 Math.log(n) / Math.log(x) 公式都会产生一个整数 例如 int x = 2 ; double n = Math.pow(2, 234) System.out.println(Math.log(n) / Math.lo
-
Java中关于二叉树的概念以及搜索二叉树详解
目录 一.二叉树的概念 为什么要使用二叉树? 树是什么? 树的相关术语! 根节点 路径 父节点 子节点 叶节点 子树 访问 层(深度) 关键字 满二叉树 完全二叉树 二叉树的五大性质 二.搜索二叉树 插入 删除 hello, everyone. Long time no see. 本期文章,我们主要讲解一下二叉树的相关概念,顺便也把搜索二叉树(也叫二叉排序树)讲一下.我们直接进入正题吧!GitHub源码链接 一.二叉树的概念 为什么要使用二叉树? 为什么要用到树呢?因为它通常结合了另外两种数据结
-
详解Java中@Override的作用
详解Java中@Override的作用 @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1.可以当注释用,方便阅读: 2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法. 举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性. @Overr
-
详解Java中多线程异常捕获Runnable的实现
详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口的LayerInitTask类,ThreadException类,线程安全的Vector 3.思路: 向LayerInitTask中传入Vector,记录异常情况,外部遍历,判断,抛出异常. 4.代码: package step5.exception; import java.util.Vector
-
Java中的静态内部类详解及代码示例
1. 什么是静态内部类 在Java中有静态代码块.静态变量.静态方法,当然也有静态类,但Java中的静态类只能是Java的内部类,也称为静态嵌套类.静态内部类的定义如下: public class OuterClass { static class StaticInnerClass { ... } } 在介绍静态内部类之前,首先要弄清楚静态内部类与Java其它内部类的区别. 2. 内部类 什么是内部类?将一个类的定义放在另一个类的内部,就是内部类.Java的内部类主要分为成员内部类.局部内部类.
-
浅谈Java中Unicode的编码和实现
Unicode的编码和实现 大概来说,Unicode编码系统可分为编码方式和实现方式两个层次. 编码方式 字符是抽象的最小文本单位.它没有固定的形状(可能是一个字形),而且没有值."A"是一个字符,"€"也是一个字符.字符集是字符的集合.编码字符集是一个字符集,它为每一个字符分配一个唯一数字. Unicode 最初设计是作为一种固定宽度的 16 位字符编码.也就是每个字符占用2个字节.这样理论上一共最多可以表示216(即65536)个字符.上述16位统一码字符构成基
-
java中初始化MediaRecorder的实现方法
java中初始化MediaRecorder 实现代码: private boolean initializeVideo() { Log.v(TAG, "initializeVideo"); if (mSurfaceHolder == null) { Log.v(TAG, "SurfaceHolder is null"); return false; } mMediaRecorderRecording = true; if (mMediaRecorder == nul
-
java中的可变参数使用方法
java中的可变参数使用方法 可变参数时Java 1.5新增的方法,可变参数方法接收0个或者多个指定类型的参数,可变参数机制通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法.如: public class Test{ public int sum(int... args) { int sum = 0; for (int arg : args) { sum += arg; } return sum; } } 可变参数提供了方便,但是使用可变参
-
Java中JDBC事务与JTA分布式事务总结与区别
Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务.常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现.所以本文暂不讨论容器事务.本文主要介绍J2EE开发中两个比较基本的事务:JDBC事务和JTA事务. JDBC事务 JDBC的一切行为包括事务是基于一个Connection的,在JDBC中是通过Connection对象进行事务管理.在JDBC中,
随机推荐
- Angular-Ui-Router+ocLazyLoad动态加载脚本示例
- 二十分钟 教你Ruby快速入门 图文教程第1/4页
- Python 关于反射和类的特殊成员方法
- Mysql数据表分区技术PARTITION浅析
- Oracle触发器实例代码
- asp.net一些很酷很实用的.Net技巧第1/2页
- js读取本地excel文档数据的代码
- Yii2 批量插入、更新数据实例
- 前端设计师们最常用的JS代码汇总
- js获取当前年月日-YYYYmmDD格式的实现代码
- 将Java程序与数据库进行连接的操作方法
- 注册表应用100例—注册表使用全攻略之十一
- java 重载(overload)与重写(override)详解及实例
- Android中CountDownTimer倒计时器用法实例
- 几种常见文件格式的说明文档
- 在python中用print()输出多个格式化参数的方法
- PHP安装BCMath扩展的方法
- C++中读写txt文件并分离字符的方法
- vue 优化CDN加速的方法示例
- Python设计模式之外观模式实例详解