Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vrj08c$ugqc$2@dont-email.me>
Deutsch   English   Français   Italiano  
<vrj08c$ugqc$2@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Lawrence D'Oliveiro <ldo@nz.invalid>
Newsgroups: comp.misc,sci.electronics.design
Subject: Re: Totally OT: Colliding blocks that compute pi
Date: Fri, 21 Mar 2025 06:16:44 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 42
Message-ID: <vrj08c$ugqc$2@dont-email.me>
References: <m3snqdFss95U1@mid.individual.net>
	<87msdihv8l.fsf@tilde.institute> <RpUohCCnw$2nFwmw@b-howie.co.uk>
	<vrh4dr$38mq5$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 21 Mar 2025 07:16:44 +0100 (CET)
Injection-Info: dont-email.me; posting-host="992507decd468f9ef8cbeb6e70190836";
	logging-data="1000268"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+WT3X2uR/mk0yGBJV+cQv6"
User-Agent: Pan/0.162 (Pokrosvk)
Cancel-Lock: sha1:vNP3BuMhZHwMv4VmRDVYb0odnTU=

On Thu, 20 Mar 2025 13:15:38 +0000, SH wrote:

> How I wish I could calculate pi

Your computer can do it!

    import decimal

    Dec = decimal.Decimal
    decctx = decimal.getcontext()
    decctx.prec = 64

    def decimal_pi():
        with decimal.localcontext() as decctx :
            decctx.prec += 2    # extra digits for intermediate steps
            t = Dec(3)      # substitute 3.0 for regular floats
            lasts, s, n, na, d, da = 0, 3, 1, 0, 0, 24
            nr_steps = 0
            while s != lasts :
                nr_steps += 1
                lasts = s
                n, na = n + na, na + 8
                d, da = d + da, da + 32
                t = t * n / d
                s += t
            #end while
        #end with
        print("nr_steps = %d" % nr_steps)
        return +s               # unary plus applies the new precision
    #end decimal_pi

    print(decimal_pi())

output:

    nr_steps = 104
    3.141592653589793238462643383279502884197169399375105820974944592

Taken from a presentation I did here
<https://github.com/HamPUG/meetings/blob/master/2022/2022-11-14/ldo/Continued%20Fractions.ipynb>.

I tried continued fractions, but found them a waste of time.