我想写一个显示PI号码的10000位数的程序,很简单,呵呵?那么,有一个问题,该文件被限制为5000字节。我试图做一些事情,比如将“11”改为a来缩短代码,但是它大约是9000,这对我来说太过分了。任何想法或提示?而且我无法使用任何其他库或函数在线或从文件下载PI编号。只是iostream。PI号码到10000位
-4
A
回答
1
可以使用高4位和低4位将两个数字打包到一个字节中。例如,对于3.141 ....将14包装成一个字节00010100(0001 == 1,0100 == 4)。这样你的10,000个数字将占用5000个字节。
当您读取文件时,只需打印3.
后跟解包数据即可。
+0
您可以将8编码为10和9编码为11,以节省一些额外的空间。 – Andrey 2014-09-23 16:56:45
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视频,获取有关如何创建最小编码的解释:
0
现在看来似乎会更容易只是为了产生PI而不是通过压缩PI本身的程序。这是通过诸如Gregory-Leibniz或Nilakantha系列等系列完成的。有关他们如何工作的文章可以在here找到。这些程序可以很容易地用几乎任何语言书写。
希望这会有所帮助。
相关问题
- 1. 生成pi到第n位数字java
- 2. 将pi打印到小数位数 - Python
- 3. 定义PI到36位小数
- 4. 查找位号码位置
- 5. 10000×10000的矩阵乘法
- 6. 找到新号码的位置
- 7. XSL XML到CSV位置号码
- 8. Pi后的逗号按钮
- 9. 用1位数号码替换第4个位数号码的
- 10. 如何在聪明的格式10000到10000 00
- 11. 转换1到10000,转换成00001到10000,十进制到字符串
- 12. 生成PI超过2315位
- 13. 水位指示器 - Rasp Pi
- 14. Arduino到Pi到PHP
- 15. 10000有16位元素的数组,找到位集(无限RAM) - 谷歌面试
- 16. 与PI破组数字输出工作,删除号码
- 17. li的位置号码
- 18. FATAL_ERROR:达到迭代限制10000达到
- 19. 电话号码前三位掩码
- 20. 找到号码
- 21. Twilio号码到另一个twilio号码
- 22. 找到另一个号码的号码?
- 23. Titanium.Facebook errDomain error 10000
- 24. php load 10000 records
- 25. 10000因子C
- 26. Scilab Error 10000
- 27. 如何在Java中显示PI符号?
- 28. 符号链接到覆盆子pi webroot休息
- 29. 遇到错误:找不到方法(类)getRange((类),号码,号码,号码)
- 30. 迭代次数限制达到10000
你可以使用各种方法来压缩数字,但是你不会真正在“显示10000位数字的PI”。目前还不清楚你实际需要做什么。 – interjay 2014-09-23 16:37:21
闻起来像功课,任务是我想弄清楚一些至少非常基本的压缩。 4位足以编码小数位1位。 – Andrey 2014-09-23 16:38:00
你有什么代码? – DavidT 2014-09-23 16:38:02