最近在写数据压缩课程的作业,演示算术编码的工作过程.受Tim老师启发,将概率的显示改成了分数,以避免精度问题.以下只实现了乘法与加法,减法和除法可以类推.
1
function
Fraction(numerator,denominator){
2 // 分数类
3 this .n = numerator;
4 this .d = denominator;
5 }
6
7 function fra_add(a,b){
8 // 加法
9 if (a.n == 0 )
10 return b;
11 else if (b.n ==
2 // 分数类
3 this .n = numerator;
4 this .d = denominator;
5 }
6
7 function fra_add(a,b){
8 // 加法
9 if (a.n == 0 )
10 return b;
11 else if (b.n ==