我想在 PI 的小数中找到一个特定的数字序列,这涉及到首先将 PI 计算为(很可能)无穷大。问题是我不知道如何使变量存储那么多数字或如何仅使用新计算的数字,以便将其与我的序列进行比较。
那么如何计算 PI 并只保留最后一个小数作为整数呢?
提前致谢。
使用惰性求值可以非常优雅地解决这类问题,就像在 Haskell 中发现的那样。或者在 Python 中使用生成器,一次最多生成一个 Pi,并检查正在搜索的目标值中的相应位置。
这两种方法的优点是您不必生成(可能)无限的数字序列,只需生成所需的数量,直到找到所需的内容。当然,如果特定序列确实没有出现在数字 Pi 中,算法将永远迭代,但至少执行程序的计算机不会耗尽内存。
或者:您可以使用BBP 公式或类似的算法,该算法允许提取 Pi 中的特定数字。
您可以使用迭代算法来计算 Pi,例如Gauss–Legendre 算法。
要实现它,您将需要一个执行任意精度算术的库;一个这样的库是GMP。
显然,有人为您完成了大部分工作:http: //gmplib.org/pi-with-gmp.html