Python pi calculation?

前端 未结 3 1880
失恋的感觉
失恋的感觉 2020-12-01 12:49

I am a python beginner and I want to calculate pi. I tried using the Chudnovsky algorithm because I heard that it is faster than other algorithms.

This is my code:

3条回答
  •  隐瞒了意图╮
    2020-12-01 13:26

    For people who come here just to get a ready solution to get arbitrary precision of pi with Python (source with a couple of edits):

    import decimal
    
    def pi():
        """
        Compute Pi to the current precision.
    
        Examples
        --------
        >>> print(pi())
        3.141592653589793238462643383
    
        Notes
        -----
        Taken from https://docs.python.org/3/library/decimal.html#recipes
        """
        decimal.getcontext().prec += 2  # extra digits for intermediate steps
        three = decimal.Decimal(3)      # substitute "three=3.0" for regular floats
        lasts, t, s, n, na, d, da = 0, three, 3, 1, 0, 0, 24
        while s != lasts:
            lasts = s
            n, na = n + na, na + 8
            d, da = d + da, da + 32
            t = (t * n) / d
            s += t
        decimal.getcontext().prec -= 2
        return +s               # unary plus applies the new precision
    
    decimal.getcontext().prec = 1000
    pi = pi()
    

提交回复
热议问题