我试图重新建立一个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 {