问候
我需要计算一个包含16位字的信号的一阶熵(Markov源,就像维基上的http://en.wikipedia.org/wiki/Entropy_(information_theory)一样.这意味着,我必须计算频率a-> b的每个组合(符号b出现在a之后)发生在数据流中.当我只做4个不太重要或4个更重要的位时,我使用了一个二维数组,其中第一维是第一个符号和第二维是第二个符号.
我的算法看起来像这样
然后,Array [a] [b]将表示符号b在流中出现符号a之后的次数.
现在,我明白C中的数组是一个递增得到精确值的指针,比如从数组[10] [10]获取元素[3] [4]我必须将指针递增到数组[0] [0] by(3*10 + 4)(存储在数组中的变量大小).我理解问题必须是2 ^ 32个unsigned long类型的元素必须占用太多.
但是,还有办法解决它吗?
或者也许有另一种方法来实现这一目标?
c ×1