流式pi十进制数字生成器算法

时间:2015-02-01 10:46:02

标签: algorithm streaming decimal digits pi

这个想法是通过HTTP实现RFC3091(" Pi数字生成协议")。我一直无法找到实际产生正确十进制扩展的流(和/或插头)算法。

是的,那里有很多实现,但大多数需要预先分配缓冲区,其大小等于请求的位数。显然,这不适用于生成无穷无尽的数字流。

C / Py / PHP / etc中的实现是理想的。

谢谢!

1 个答案:

答案 0 :(得分:-2)

这个问题是典型的课堂练习,因为它会让学生找到答案,并且无法通过简单的互联网搜索下载答案,这就是我做出评论的原因。 。但是,我也怀疑OP不擅长搜索,因为我很快找到了很多有用的资料,我很快就会提到这些资料。

StackOverflow不是人们为您编写代码的网站。这种性质的问题在这里被视为off-topic。我们会帮助您使用您拥有的代码,但我们不会为您提供任何代码。目前你没有算法,代码或数学,这预计会有相当多的SO。你必须多给自己一些回报。

如果您不理解生成Pi的无限数字序列的数学,您可以在https://math.stackexchange.com/中询问哪个更适合此任务。如果你想讨论像这样的课堂练习,也许可以去https://matheducators.stackexchange.com/。如果您想与程序员进行更一般的聊天,请访问:https://softwareengineering.stackexchange.com/

行。现在回答。

快速谷歌发送给我:

Su, Francis E., et al. "Finding the N-th digit of Pi." Math Fun Facts.

引用:

  1. David Bailey,Peter Borwein和Simon Plouffe。 "关于各种多对数常数的快速计算",数学。比较。 66(1997),903-913。
  2. Victor Adamchik和Stan Wagon,"一个简单的pi",Amer。数学。每月104(1997),852-855。
  3. 并使用公式:

    Pi = SUMk = 0至无穷大16-k [4 /(8k + 1)-2 /(8k + 4)-1 /(8k + 5)-1 /(8k + 6)]。

    计算Pi的十六进制数字而不存储任何先前的数字。 这样就可以通过当前十六进制数字和数字计数的简单持久存储来轻松编码.....

    另见Efficiently computing the first 20-digit substring to repeat in the decimal expansion of Pi

    中的相关讨论