2012-10-18 21 views
3

我想在PI的小數中找到一個特定的數字序列,並且首先需要計算PI(很可能)無窮大。問題是我不知道如何創建一個可變的商店,有很多數字或者如何使用新計算的數字,所以我可以將它與我的序列進行比較。如何在PI的小數點內找到特定的序列?

那麼我該如何計算PI並只保留最後一位小數作爲整數?

在此先感謝。

+5

無窮大,嘿? ) –

+0

數字序列有多長? – starblue

+0

[你想計算Pi到最後一位?](http://www.youtube.com/watch?v=RN5aQSN7qo8) – Beta

回答

3

這類問題可以很優雅地用惰性計算來解決,就像一個在Haskell找到。或者在Python中使用生成器,一次生成最多一個Pi,並檢查正在搜索的目標值中的相應位置。

這兩種方法的優點是,您不必生成(可能)無限的數字序列,只需要根據需要生成,直到找到所需內容。當然,如果特定序列真的沒有出現在數字Pi中,算法將永遠迭代,但至少執行該程序的計算機不會用完內存。

或者:您可以使用BBP Formula或允許提取Pi中特定數字的類似算法。

+0

這隻有在你有一個返回PI的第n個數字的方法'f(n)'時纔有效。你做? – IVlad

+0

@IVlad第一個選項:不,你可以懶惰地計算「所有數字」,但只能看一個,特別是在進入下一個之前。對於第二種選擇:是的,這意味着計算第n位數字,但如上所述,存在這樣的算法。 –

+0

像BBP這樣的數字提取算法確實是我想的方式,但是我發現你的前兩個段落很混亂,而且沒有真正相關。最後一句話是我認爲的所有OP需求,所以+1。 – IVlad

相關問題