Horner 小数部分递归算法 - Java

2023-11-24

我正在尝试创建一个递归方法,使用 Horner 算法将以 n 为基数的小数转换为以 10 为基数的小数。我在这里和各处进行了搜索,但找不到任何详细处理小数部分的地方。需要注意的是,我在递归方面非常薄弱,因为我还没有在编程课程中正式学习它,但已被另一个课程分配。

我能够创建一个方法来处理数字的整数部分,而不是小数部分。

我觉得我写的方法相当接近,因为它让我将测试数字的答案加倍(也许是因为我正在测试基数 2)。

传递的第一个参数是一个填充系数的 int 数组。我不太关心系数的顺序,因为我使所有系数相同来测试它。

第二个参数是基数。第三个参数初始化为系数数减 1,我也将其用于整数部分方法。我尝试使用系数的数量,但这超出了数组。

我尝试再除一次基数,因为这会给我正确的答案,但如果我在基本情况返回语句或最终返回语句末尾这样做,它就不起作用。

所以,当我尝试转换时0.1111以 2 为基数到以 10 为基数,我的方法返回1.875(正确答案的两倍0.9375).

任何提示将不胜感激!

//TL;DR
coef[0] = 1; coef[1] = 1; coef[2] = 1; coef[3] = 1;
base = 2; it = 3;
//results in 1.875 instead of the correct 0.9375



public static double fracHorner(int[] coef, int base, int it) {
    if (it == 0) {
        return coef[it];
    }
    return ((float)1/base * fracHorner(coef, base, it-1)) + coef[it];
}

观察一下fracHorner总是返回一个至少等于的值coef[it]因为它要么返回coef[it]或者添加一些积极的东西coef[it]. Since coef[it] >= 1在您的测试中,它将始终返回大于或等于 1 的数字。

解决起来相对容易:将两者分开coef[it] by base:

public static double fracHorner(int[] coef, int base, int it) {
    if (it == 0) {
        return ((double)coef[it])/base;
    }
    return (fracHorner(coef, base, it-1) + coef[it])/base;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Horner 小数部分递归算法 - Java 的相关文章

  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • R - 通过覆盖和递归合并列表

    假设我有两个带有名字的列表 a list a 1 b 2 c list d 1 e 2 d list a 1 b 2 b list a 2 c list e 1 f 2 d 3 e 2 我想递归地合并这些列表 如果第二个参数包含冲突的值 则
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 如何实现n个元素的查找和插入操作的动态二分查找

    这个想法是使用多个数组 每个长度为 2 k 根据 n 的二进制表示来存储 n 个元素 每个数组都是排序的 不同的数组没有以任何方式排序 在上述数据结构中 SEARCH是通过对每个数组进行一系列二分查找来进行的 INSERT 是通过一系列相同
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后

随机推荐

  • 使用 Mono.Cecil 发出对 System.Lazy 构造函数的调用

    我正在尝试发出一种实例化 System Lazy 的方法 但失败并出现 无效令牌 的 PEVerify 错误 位于该行newobj instance void class mscorlib System Lazy 1
  • Next.JS 代码为何同时在服务器和客户端上运行?

    在 Next JS 应用程序中 您会看到组件的代码在服务器和客户端上运行 因此 如果您有以下代码 const Title gt console log gt Hello return h1 Some title h1 然后您在开发环境中运行
  • 将 ObservableCollection 绑定到 DataGridView

    我正在将可观察集合 FoodList 绑定到 WinForm 中的 BindingSource 此 BindingSource 由表单上的数据网格使用 我假设当我向集合中添加一个新项目时 它会引发一个事件 并且一个新行会出现在我的网格中 但
  • 如何使用RVM管理多个gemset和ruby版本?

    我对 RVM 网站上给出的解释感到非常困惑 我不清楚不同的红宝石解释器和宝石集之间的关系 按照我的说法 是这样的 我的 Mac 帐户有一个 rvm 该 nvm 安装并管理一组不同版本的 ruby 解释器 每个红宝石版本都有一组宝石 我把事情
  • 从 mongoengine 中的文档获取必填字段?

    我希望能够获取我创建的文档所需的列表或某种字段集 例如 这是我的文档 nickName StringField required True password StringField required True firstName Strin
  • 设置 Fcm 通知优先级 - Azure 通知中心

    我正在尝试在 C SDK 中的 Fcm 通知有效负载上设置高优先级 以便从后端将其发送到移动应用程序 根据 Fcm 文档 Json Paylod 应该如下所示 message topic subscriber updates notific
  • 即使通过 PuTTY 连接到 Windows 上的 GitHub 时也出现问题

    我知道已经在各个地方 Stack Overflow 内外 讨论了这个问题 但我还没有找到一致有效的解决方案 现在 我正在尝试通过 putty 连接到 github 我正在连接到 github com 加载我的私钥 并获得 登录为 迅速的 当
  • CSS 目标只是类名以字符串开头和结尾

    我想为我们公司创建某些标准的 css 代码 作为品牌 我想以我的公司名称开始所有类名 并以 Cls 结尾 div class Nam StdCss Cls div div class Nam StdCss Raduis Cls div di
  • 如何最小化asp.net中页面的视图状态大小?

    如何最小化asp net中页面的视图状态大小 请帮忙 您有多种选择来减少 ViewState 禁用视图状态对于不需要它的控件 这是最有效的解决方案 例如 如果您可以在服务器上缓存一些数据 那么您可以为每个请求重新绑定任何数据绑定控件 并且不
  • Flutter中main函数和runApp()函数有什么区别?

    我倾向于问这个问题 因为大多数时候我们直接调用 runApp 函数 main 而不执行其他操作 我的问题是为什么 runApp 和 main 保持不同 可能很简单 保留 main 函数或 runApp 函数 而放弃其他函数 在 Dart 中
  • 正则表达式:如果字母与数字相邻,则添加空格

    我正在使用 PHP 但不太擅长使用正则表达式 我需要一个 preg replace 如果字母或数字相邻 它可以添加空格 这些是场景 mystreet12 gt mystreet 12 mystreet 38B gt mystreet 38
  • Base10 到 Base64 网址缩短

    我正在为一个正在学习 php 的项目编写一个 url 缩短函数 这是代码 顺便说一句 我想global这不是一件好事 P alphabet array 1 gt a b c d e f g h i j k l m n o p q r s t
  • 如何在 Pygame 中按住“按键”?

    我使用 Pygame 1 9 6 和 Python 3 7 4 我想按住空格键 它会不断地一遍又一遍地执行相同的操作 我知道如何按下按钮KEYDOWN 我看了下问题 如何在 Pygame 中有效地按住键 寻求答案 但无法理解一个答案 whi
  • Delphi 编译和构建在同一项目上生成不同的二进制文件

    在新的 VCL 应用程序中Compile and Build操作生成相同的二进制文件和映射文件 即使关闭 在项目中包含版本信息 选项 exe 文件末尾也有细微差别 已经讨论过 映射文件的字节与字节相同 但是当我添加任何第三方组件时 构建和编
  • 从 ul li jquery 获取所选项目

    您好 我正在动态地在 ul li HTML 标记中填充一个列表 我所需要的只是获取相应 ul 的选定 li 的值 我尝试了所有可能的 jquery 方法 但仍然未定义 我将 ul li 填充为 jQuery get url function
  • MySQL 按 ID 和最新日期时间分组

    我在这里看到了类似的问题 但没有一个对我的情况有帮助 我有一个表可以说测试 使用 mysql MyISAM 测试具有以下架构 TID INT PRIMARY KEY AUTO INCREMENT TData varchar data tha
  • 当只有 https URL 时,获取证书并将其添加到 Java 信任库?

    我正在尝试通过 Google Cloud Message 服务器向 Android 设备发送推送通知 我们用来执行此操作的 URL 是 https android googleapis com gcm send 在我们的企业应用程序中 我们
  • Clojure 宏将保留关联映射顺序

    作为前言 我在 Windows 7 64 位 上运行 Java 版本 6 更新 33 使用clooj作为我的 IDE 我没有尝试在任何其他系统中重现我的问题 我对 Clojure 有经验 但对 Java 一点经验都没有 我试图解决的整个问题
  • Firebase 存储安全规则 400 错误问题“权限被拒绝。无法访问存储桶 xxxxx-****.appspot.com”

    尝试上传照片时 我不断从 firebase 链接收到消息错误 提示我的 React 项目中的 firebase 存储上传出现 400 错误 之前一切正常并成功上传图像 但现在它停止上传照片 出现以下错误 我不知道问题出在哪里 检查中提示出来
  • Horner 小数部分递归算法 - Java

    我正在尝试创建一个递归方法 使用 Horner 算法将以 n 为基数的小数转换为以 10 为基数的小数 我在这里和各处进行了搜索 但找不到任何详细处理小数部分的地方 需要注意的是 我在递归方面非常薄弱 因为我还没有在编程课程中正式学习它 但