Pi Approximation Day
07-22-2020, 11:22 PM
Post: #1
 Gerson W. Barbosa Senior Member Posts: 1,297 Joined: Dec 2013
Pi Approximation Day
Today is Pi Approximation Day.
To celebrate it, here is an HP 50g program based on a variation of the Wallis Product. Here we use (2/1*4/3*6/5*8/7*...) plus a correction factor in continued fraction form. The number of digits per iteration is slightly less than 21/10, which is being used by the program, so this has to be adjusted. The argument
of the RPL program is the desired number of decimal places. For n = 100, the program returns 98 correct decimal digits; for n = 200, the program gets all of them right. This takes about one minute on the emulator because of the slowness of EXPAND to process long algebraic expressions.

Code:
 « PUSH RAD -105 CF -3 CF DUP 10 * 21 / CEIL 0 2 ROT 8 OVER * PICK3 + UNROT 1   FOR i i DUP + DUP 1 - UNROT * OVER / SWAP SQ 4 ROLL 4 PICK + / UNROT -1   STEP SQ UNROT 2 / + / EXPAND FXND DUP SIZE R→I ALOG OVER - PICK3 * SWAP IQUOT  + →STR DUP HEAD 0 I→R →STR TAIL + SWAP TAIL + 1 ROT 2 + SUB POP »

253 bytes, CKS = # 537h

3,141592653589793238462643383279502884197169399375105820974944592307816406286208​99862803482534211706798214808651328230664709384460955058223172535940812848111745​
028410270193852110555964462294895493038196

HP-75C program:

Code:
 10 INPUT N 15 C=0 20 D=8*N+2 25 W=2 30 FOR I=N TO 1 STEP -1 35 T=2*I-1 40 W=W*(T+1)/T 45 C=T*T/(C+D) 50 NEXT I 55 C=C+D/2 60 DISP W*W/C
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)