문제

지금까지 그것은 Fabrice Bellard의 Base 2 방정식처럼 보입니다.

alt text

아이러니하게도 이것은 큰 성실한 유형이 필요합니다. .NET에 대해 이것을 가지고 있습니까? .NET 4.0에는 BigInteger가 있습니다.

누구든지 Haskell 버전이 있습니까?

도움이 되었습니까?

해결책

Haskell 버전을 요구하기 때문에 여기에 종이가 있습니다 Jerzy Karczmarczuk, "세계에서 가장 신뢰할 수없는 기술"이라고 불렀습니다.

이 백서는 게으른 기능 코딩의 비정형 연습으로 재미와 교육을 위해 작성되었습니다. 프로그래밍 언어 Haskell을 이해하는 사람이라면 누구나 읽고 이해할 수 있습니다. 우리는 숫자 3, 1, 4, 1, 5, 9를 생성하는 공동 회수 적 방식으로 π에 대한 Bailey-Borwein-Ploue 공식을 구현하는 방법을 보여줍니다. . 기억 피로까지. 누군가가 많은 숫자가 필요한 경우 이것은 진행하는 방법이 아닙니다! 우리의 코딩 전략은 왜곡되고 위험하며 아마도 분해됩니다. 그것은 정수베이스에서 확장 된 적절한 분획을 나타내는 무한 숫자 시퀀스의 영역에 대한 산술을 기반으로합니다. 우리는 조작 방법을 보여줍니다 : 추가, 정수 등을 곱합니다. 왼쪽에서 오른쪽 AD 무한 시퀀스는 모호성 때문에 모든 경우에 작동 할 수는 없습니다. 일부 깊은 철학적 결과는 결론에서 논의됩니다.

그것은 실제로 효율적이거나 매우 실용적인 방식으로 문제를 해결하지는 않지만 재미 있고 게으른 무한한 정밀 산술의 일부 문제를 보여줍니다.

그런 다음 또한 있습니다 Jeremy Gibbons 의이 논문.

다른 팁

지금까지 PI를 위해 내가 가장 좋아하는 Haskell Spigot은 Jeremy Gibbons에서 나옵니다.

pi = g(1,0,1,1,3,3) where
    g(q,r,t,k,n,l) = 
        if 4*q+r-t<n*t
        then n : g(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n,l)
        else g(q*k,(2*q+r)*l,t*l,k+1,div(q*(7*k+2)+r*l)(t*l),l+2)

구현을 정당화하는 수학적 배경은 다음에서 찾을 수 있습니다.

PI의 숫자에 대한 스피트 알고리즘

Wikipedia는 PI의 수치 근사를 얻는 많은 방법을 자세히 설명합니다. 여기. 그들은 또한 샘플 의사 코드를 제공합니다

편집 : 해결해야 할 관련 실제 문제가없는 이런 종류의 수학적 문제에 관심이 있다면 (IMHO)를 방문 할 수있는 좋은 태도입니다. 오일러 프로젝트 페이지

큰 합리적 숫자를 처리 할 수있는 가능성이 있습니다. DLR-기반 동적 언어 (예 : Ironpython). 또는 휴대용 C/C ++를 통해 큰 실수를 구현할 수 있습니다. p/호출.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top