算数编码java_java - Java算术编码-查找字符范围 - 堆栈内存溢出

这篇博客探讨了在Java中实现算术编码过程中遇到的问题,特别是在为每个字符分配概率范围时出现的不准确结果。作者分享了代码,并寻求关于可能的舍入错误或更优编码方法的解决方案。
摘要由CSDN通过智能技术生成

我试图重新建立一个Java实现的算术在这个环节中描述的编码,下节“算术编码:它是如何工作”: 链接

我正要在个别符号上沿着概率线分配一个范围。 但是,在创建正确的范围时遇到一些问题。 在下面显示的代码中,这是通过setRanges()实现的。 预期结果应为:

Character Ranges -

0.0 - 0.09999999999999999

A 0.1 - 0.19999999999999999

B 0.2 - 0.29999999999999999

E 0.3 - 0.39999999999999999

G 0.4 - 0.49999999999999999

I 0.5 - 0.59999999999999999

L 0.6 - 0.79999999999999999

S 0.8 - 0.89999999999999999

T 0.9 - 0.99999999999999999

我当前的输出是这样的:

字符范围-

0.0 - 0.09999999999999999

A 0.1 - 0.2

B 0.2 - 0.30000000000000004

E 0.30000000000000004 - 0.4

G 0.4 - 0.5

I 0.5 - 0.6

L 0.6 - 0.8

S 0.8 - 0.9

T 0.9 - 1.0

我不确定是否有更好的方法来编码我的方法setRanges(),或者这是否仅仅是舍入错误的结果。

这是Range类,仅包含低浮点值和高浮点值:

public class Range {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值