我试图编写一个显示10000位PI号码的程序,简单,呵呵?好吧,有一个问题,文件限制为5000字节。我尝试过改变" 11"为了使代码更短,但它大约是9000,这对我来说太过分了。任何想法或提示?我无法使用任何其他库或函数在线下载PI编号或从文件中下载PI编号。只是iostream。
答案 0 :(得分:1)
您可以使用高4位和低4位将两位数打包成一个字节。例如,对于3.141 ....将14打包成一个字节为00010100(0001 == 1,0.0000 == 4)。这样,您的10,000位数将占用5000个字节。
当您阅读文件时,只需打印3.
,然后打开解压缩的数据。
答案 1 :(得分:0)
这是pi的前10,000个数字:http://www.nerdparadise.com/math/reference/pi10000/
这些数字的分解是:
0: 968
1: 1026
2: 1021
3: 974
4: 1012
5: 1046
6: 1021
7: 970
8: 948
9: 1014
这意味着对此的最小编码是:
000: 5
001: 1
010: 2
011: 6
100: 9
101: 4
1100: 3
1101: 7
1110: 0
1111: 8
总共4232.5个字节的打包数据。
我将把解码器作为练习留给读者。
另请参阅此YouTube视频,了解有关如何创建最少编码的说明:
答案 2 :(得分:0)
似乎只是制作一个生成pi的程序而不是通过压缩pi本身会更容易。这是通过Gregory-Leibniz或Nilakantha系列等系列完成的。可以找到关于它们如何工作的文章here。这些程序几乎可以用任何语言编写。
希望这有帮助。