PI编号为10000位

时间:2014-09-23 16:35:05

标签: pi

我试图编写一个显示10000位PI号码的程序,简单,呵呵?好吧,有一个问题,文件限制为5000字节。我尝试过改变" 11"为了使代码更短,但它大约是9000,这对我来说太过分了。任何想法或提示?我无法使用任何其他库或函数在线下载PI编号或从文件中下载PI编号。只是iostream。

3 个答案:

答案 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视频,了解有关如何创建最少编码的说明:

https://www.youtube.com/watch?v=M5c_RFKVkko

答案 2 :(得分:0)

似乎只是制作一个生成pi的程序而不是通过压缩pi本身会更容易。这是通过Gregory-Leibniz或Nilakantha系列等系列完成的。可以找到关于它们如何工作的文章here。这些程序几乎可以用任何语言编写。

希望这有帮助。