是否可以压缩随机的
我有用于模拟纸牌游戏的真实数据。我只对卡片的等级感兴趣,对西服不感兴趣。但是,它是标准的张纸牌,因此该纸牌中每个等级只能有张纸牌。每副牌的洗牌盘都洗好了,然后我将整个唱盘输出到一个文件中。因此,在输出文件中只有可能的符号分别是。( =十位)。因此,我们当然可以使用每个符号位对它们进行位打包,但是随后我们浪费了可能编码中的种。如果一次将符号分组,然后对其进行压缩,则可以做得更好,因为28 ,561 15 16 13 2 3.70044 13 52 4 3.252525213 2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,4441313132,3,4,5,6,7,8,9,T,J,Q,K,A2,3,4,5,6,7,8,9,T,J,Q,K,A2,3,4,5,6,7,8,9,T,J,Q,K,ATTT44433316161644413413413^4 =,可以“ ”放入位而不是位。对于每个可能的卡,带有随机符号的数据的理论位打包限制为log()/ log()=。但是,例如在此甲板中不能有国王。在每个套牌中,每个等级必须只有,因此熵编码每个符号下降约一半,降至约。28,56128,56128,5611515151616161313132223.700443.700443.700441313135252524443.23.23.2 好的,这就是我的想法。此数据不是完全随机的。我们知道每个等级有,因此在张卡片的每块中(称为洗牌后的卡片组),因此我们可以进行几个假设和优化。其中之一就是我们不必对最后一张卡进行编码,因为我们会知道它应该是什么。如果我们只停留在一个等级上,那将是另一个节省。例如,如果最后在甲板卡是,我们不会有编码的,因为解码器将票卡到这一点,并看到所有其他的队伍已经排满,并且将承担 “ “失踪”卡全为 s。444525252333777777777333777 因此,我对此站点的问题是,在这种类型的数据上可以获得什至更小的输出文件还有哪些其他优化方法?如果使用它们,我们能否击败每个符号位的理论(简单)位打包熵,或者甚至接近每个符号平均约位的极限熵极限?如果是这样,怎么办?3.700443.700443.700443.23.23.2 当我使用ZIP类型的程序(例如WinZip)时,我只会看到2:12:12:1压缩,这告诉我它只是在将“惰性” 位打包为444位。如果我使用自己的位打包来“预压缩”数据,那似乎会更好,因为当我通过zip程序运行数据时,我得到的压缩比是2:12:12:1。我在想的是,为什么不自己进行所有压缩(因为我比Zip程序对数据有更多的了解)。我想知道是否可以克服 log(131313)/ log(222)= 3.70044的熵“极限”3.700443.700443.70044。我怀疑我可以通过我提到的一些“技巧”来发现更多的技巧。当然,输出文件不必是“人类可读的”。只要编码是无损的,它就是有效的。 这是333百万条人类可读混洗牌组(每行111条)的链接。任何人都可以“练习”这些行的一小部分,然后再将其撕裂整个文件。我将根据此数据继续更新最佳(最小)文件大小。 https://drive.google.com/file/d/0BweDAVsuCEM1amhsNmFITnEwd2s/view 顺便说一句,如果您对这些数据用于哪种类型的纸牌游戏感兴趣,请访问我的活跃问题(悬赏分)链接。有人告诉我这是一个(很难)解决的难题,因为这将需要大量的数据存储空间。不过,一些模拟与近似概率一致。尚未提供纯粹的数学解决方案。我想这太难了。300300300 /math/1882705/probability-2-player-card-game-with-multiple-patterns-to-win-who-has-the-advant 我有一个很好的算法,可以显示位以对样本数据中的第一副牌进行编码。该数据是使用Fisher-Yates随机算法随机生成的。它是真正的随机数据,所以我新创建的算法似乎运行得很好,这让我很高兴。168168168 关于压缩“挑战”,我目前大约为每副160位。我想我可以下降到158。是的,我尝试了一下,每个卡座得到158.43位。我想我已经接近算法的极限,所以我成功降低到每副166位以下,但未能获得156位,即每张卡3位,但这是一个有趣的练习。也许在将来,我会考虑采取一些措施将每个卡座平均减少2.43位或更多。