Java中使用幂法计算n次方根

2024-01-14

我试图在java中使用得到立方根Math.pow(n, 1.0/3)但因为它除以双精度数,所以它不会返回确切的答案。例如,对于 125,结果为 4.9999999999。有解决方法吗?我知道有一个立方根函数,但我想解决这个问题,以便我可以计算更高的根。

我不想四舍五入,因为我想通过执行以下操作来知道数字是否具有整数根:Math.pow(n, 1.0 / 3) % ((int) Math.pow(n, 1.0 / 3)).


由于不可能进行任意精度的微积分double,你有三个选择:

  1. 定义一个精度,您可以根据该精度决定是否doublevalue 是否为整数。
  2. 测试是否四舍五入的值double你得到的是一个正确的结果。
  3. 在 a 上进行微积分BigDecimal http://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html对象,支持任意精度的双精度值。

Option 1

private static boolean isNthRoot(int value, int n, double precision) {
    double a = Math.pow(value, 1.0 / n);
    return Math.abs(a - Math.round(a)) < precision; // if a and round(a) are "close enough" then we're good
}

这种方法的问题是如何定义“足够接近”。这是一个主观问题,取决于您的要求。

Option 2

private static boolean isNthRoot(int value, int n) {
    double a = Math.pow(value, 1.0 / n);
    return Math.pow(Math.round(a), n) == value;
}

这种方法的优点是不需要定义精度。然而,我们还需要执行另一项操作pow操作,因此这会影响性能。

Option 3

没有内置方法来计算 BigDecimal 的双倍幂。这个问题 https://stackoverflow.com/q/3579779/1743880会让您深入了解如何做到这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中使用幂法计算n次方根 的相关文章

  • Google App Engine with Java - 运行 javac.exe 编译器时出错

    在 Windows XP 上 刚刚下载并解压谷歌应用程序引擎java sdk to C Program Files appengine java sdk 我已经安装了jdk C Program Files Java jdk1 6 0 20
  • URL.setURLStreamHandlerFactory

    我正在使用带有嵌入式 Jetty 的可执行 jar 开发一个 Web 应用程序 我的jar包含一个依赖jar jar in jar 我参考了JarRsrcLoader and RsrcURLStreamHandlerFactory由 Ecl
  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p
  • Java 正则表达式 - 字母数字,最多一个连字符,句点或下划线,七个字符长

    我是 Java 正则表达式工具的新手 尽管它们潜力巨大 但我很难完成这项任务 我想编写一个正则表达式来验证遵循以下语法的输入字符串 小写字母和数字的任意组合 仅一个下划线 一个破折号或一个句号 无其他特殊字符 最小长度为 5 我想出了以下解
  • 请参阅 Java EE eclipse 调试中的 POST 参数

    我在调试 Java EE 方面没有经验 我更像是一个 javascript 人 我需要查看哪些 HTTP POST 参数到达服务器端 我在表单将其操作指向的 jsp 文件中放置了一个断点 现在我在调试变量窗口中找不到 POST 内容 他们在
  • java.lang.LinkageError:尝试重复的类定义

    为什么会发生错误以及如何修复它 02 13 02 pool 4 thread 2 WARN Exception in thread pool 4 thread 2 02 13 02 pool 4 thread 2 WARN java lan
  • JFace ColumnWeigthData 导致父级增长

    我有一个 Eclipse RCP 应用程序 并且想要在TableViewer using ColumnWeigthData as ColumnLayoutData 问题是父表单 ScrolledForm在示例代码中 每当我布局表格时都会增加
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • 线程“main”中的异常 java.lang.StackOverflowError

    我有一段代码 但我无法弄清楚为什么它在线程 main java lang StackOverflowError 中给出异常 这是问题 Given a positive integer n prints out the sum of the
  • 在 IntelliJ 中运行 Spring Boot 会导致 Unable to load 'javax.el.E​​xpressionFactory'

    我正在尝试运行一个简单的 Spring Boot 应用程序 该应用程序具有以下 Maven pom file
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • 创建正则表达式匹配数组

    在Java中 我试图将所有正则表达式匹配返回到一个数组 但似乎您只能检查模式是否匹配某些内容 布尔值 如何使用正则表达式匹配来形成与给定字符串中的正则表达式匹配的所有字符串的数组 4城堡的回答 https stackoverflow com
  • 如何初始化静态地图?

    你会如何初始化静态Map在Java中 方法一 静态初始化方法二 实例初始化 匿名子类 或者 还有其他方法吗 各自的优点和缺点是什么 这是说明这两种方法的示例 import java util HashMap import java util
  • Java:由 HTTP 连接创建的等待连接线程存活时间很长

    我有一个服务器端代码 用于检查 SOAP 服务是否已启动 代码如下 String response while response length 0 try final URL url new URL DummySoapServiceURL
  • 公共方法与公共 API

    在干净的代码书中 有一个观点是 公共 API 中的 Javadocs 同样 Effective java 一书也有这样的内容 项目 56 为所有公开的 API 元素编写文档注释 所以这就是我的问题 所有公共方法都被视为公共 API 吗 它们
  • 春季 CORS。在允许的来源中添加模式

    查看CORS的弹簧指南 以下代码启用所有允许的来源 public class MyWebMVCConfigurer extends WebMvcConfigurerAdapter Override public void addCorsMa
  • 摩尔斯电码 至 英语

    我现在的问题是让 摩尔斯电码转英语 正常工作 将英语转换为莫尔斯电码的第一部分工作正常 我知道以前已经有人问过这个问题 但我不知道我做错了什么 我知道我需要在某个地方进行拆分 但我只是不确定将其放在代码中的何处 现在 莫尔斯电码到英语的部分
  • Java:使用 Graph API 在线更新 Sharepoint 上的 docx 文件

    我在使用 Java 在线更新 Sharepoint 上的 docx 文件时遇到问题 首先 我检查了构建 PUT 请求的 URL 此处 并使用此请求 PUT drives drive id items item id content 我首先使
  • 为什么应该首选 Java 类的接口?

    PMD https pmd github io 将举报以下违规行为 ArrayList list new ArrayList 违规行为是 避免使用 ArrayList 等实现类型 而是使用接口 以下行将纠正违规行为 List list ne

随机推荐

  • 将多种日期时间格式转换为一种标准格式

    我正在尝试在 R 中执行一些简单的操作 在加载表后 我遇到了一个组合了多种格式的日期列 Date 1 28 14 6 43 PM 1 29 14 4 10 PM 1 30 14 12 09 PM 1 30 14 12 12 PM 02 03
  • 从 Django JSONField 获取值

    我正在尝试从模型中的 JSONField 检索值 但出现错误 Api 对象没有属性 openapi spec info title class Api models Model Model to hold infomation on the
  • 在 woocommerce 搜索中包含自定义字段值

    我尝试在 woocommerce 中包含自定义字段值search但我有一个问题 在 Google 和 Stack 上 我也看到了带有 pre get posts 的示例 所以我认为这是一个很好的方向 我编写了如下代码 function cu
  • MVC3 Html.DisplayFor -- 是否可以让该控件生成 ID?

    我希望能够显示一些文本 而且还可以通过 jQuery 修改文本 如果我使用 EditorFor 而不是 DisplayFor 我会看到输入控件的 ID 不过 我不希望该值以这种方式可编辑 因此 我将其设为 DisplayFor 但它不会为该
  • 类型必须满足静态生存期

    我正在尝试增加 Rust 和 GTK RS 应用程序的结构 但我不知道如何处理事件连接 我发现问题出在错误的生命周期中 但我真的不明白如何解决它 derive Debug struct CreatingProfileUI window gt
  • SQL 计数(*) 和非重复

    为什么我们不能使用count distinct 在 SQL 中 比如计算所有不同的行 select count from select distinct from MyTable as T 尽管我强烈建议您重新考虑使用的任何查询DISTIN
  • 是什么 ”?” php 中使用的 URL 中的符号?

    我是 PHP 新手 在学习PHP语言的过程中 我注意到 有些网站会出现这样的URL www website com profile php user roa3 我的问题 是什么 符号用于 如果我要开发一个 php 网站 我必须在 URL 中
  • 如何将 ImageMagick 环境变量传递给 nginx mongrels?

    我的 Rails 应用程序使用 ImageMagick 但应用程序在尝试执行 ImageMagick 命令 识别 时失败 我通过在 Apache 配置中传递以下环境变量解决了开发中的这个问题 我正在运行 Apache Passenger S
  • 我应该在 DTO 中使用构建器模式吗?

    这可能是一个相当主观的问题 但我想知道更多的意见 我使用 Spring MVC 构建了 Rest API 服务 并实现了 DTO 域 实体模式 我想知道您对实施该法案有何看法建造者模式 https en wikipedia org wiki
  • “ecb”不适用于 Cordova 和推送插件

    我尝试使用演示使用 PushNotification 注册我的设备 这不起作用 打印 Cordova PushNotification Plugin Demo 和 registering android 并查看警报 OK successHa
  • 在 Java 中应该使用什么舍入方法来计算金钱?

    假设我在 Java 中有一个代表金钱的十进制值 舍入这些值的最佳方法是什么 例如 如果我有一个根据税率计算的值 那么我最终会得到以下结果 5 3999999999999995作为税额 我是否应该将其四舍五入到小数点后两位 double d
  • 为什么我的 readFileSync 函数没有执行? [复制]

    这个问题在这里已经有答案了 我正在尝试从 Node js 中的文件中读取数据 这是我的代码 const cheerio require cheerio var fs require fs var path process argv 2 va
  • 使用 json_encode() 引号中的数字[重复]

    这个问题在这里已经有答案了 各种第三方公司迫使我们使用非常规代码并产生非标准输出 我们正在使用标准json encode 在 JS HTML 中输出 JSON 变量 如下所示 custom 1 2 2 7 3 5 现在他们告诉我们这对他们不
  • 在 UWP 中使用 RenderTargetBitmap 时出错

    我正在尝试创建位图图像 并具有以下代码 RenderTargetBitmap renderTargetBitmap new RenderTargetBitmap await renderTargetBitmap RenderAsync ui
  • 带有动态表单的 jquery 验证插件

    如何使用此代码 来自demo http jquery bassistance de validate demo ajaxSubmit intergration demo html 如果尚未创建表单 jQuery form validate
  • 如何使用 SPARQL 从 Wikidata 获取属性标签

    我正在使用 SPARQLWrapper 将 SPARQL 查询发送到 Wikidata 目前我正在尝试查找实体的所有属性 例如 使用一个简单的元组 例如 wd Q11663 a b 这本身是有效的 但我试图为返回的属性和实体找到人类可读的标
  • Firebase Admin SDK 应用操作代码进行电子邮件验证

    火力基地自定义电子邮件操作处理程序指南 https firebase google com docs auth custom email handler给出了在通过 Firebase 托管的网站的自定义 URL 上验证用户电子邮件地址的示例
  • Kafka Confluence:JDBC 接收器连接器中的删除模式给出错误,并且无法在“pk.fields”中使用复合键

    我有两个问题 1 我启用了delete enabled as true 但由于它需要pk mode被设置为record key我无法使用 MySQL 表的复合键 因为我可以在设置时使用pk mode as record value 我尝试在
  • 解决 Clang 下缺乏 Yz 机器约束的问题?

    我们使用内联汇编来使 SHA 指令可用 如果 SHA 没有定义 在 GCC 下我们使用 GCC INLINE m128i GCC INLINE ATTRIB MM SHA256RNDS2 EPU32 m128i a const m128i
  • Java中使用幂法计算n次方根

    我试图在java中使用得到立方根Math pow n 1 0 3 但因为它除以双精度数 所以它不会返回确切的答案 例如 对于 125 结果为 4 9999999999 有解决方法吗 我知道有一个立方根函数 但我想解决这个问题 以便我可以计算