Napier's Constant E for Small Basic
Published Feb 12 2019 04:13 PM 450 Views
Iron Contributor
First published on MSDN on Jul 20, 2015

Authored by Nonki Takahashi


Do you know Napier’s constant e ?  The e is also known as the base of the natural logarithm.  In the Challenge of the Month – July 2015 , I suggested following challenge:



Community Suggestion (By Nonki)



  • Calculate Napier's constant e (the base of the natural logarithm).



This idea is from that Small Basic doesn’t have the property Math.E like Visual Basic (But, LitDev Extension has LDMath.E property).


I made three programs for this challenge.


This is the first program: CML298



  • This program uses following equation to calculate e .

  • This program causes run time error.

  • This program can calculate e correctly to 27 places of decimals (accurate as possible for Small Basic).


0!=1 e=1
1!=1 e=2
2!=2 e=2.5
3!=6 e=2.6666666666666666666666666667
:
:
24!=620448401733239439360000 e=2.7182818284590452353602874043
25!=15511210043330985984000000 e=2.7182818284590452353602874688
26!=403291461126605635584000000 e=2.7182818284590452353602874713
27!=10888869450418352160768000000 e=2.7182818284590452353602874714

Unhandled Exception: System.OverflowException: Value was either too large or too
small for a Decimal.
at System.Decimal.FCallMultiply(Decimal& d1, Decimal& d2)
at _SmallBasicProgram._Main()

The second one is: DNP836 .



  • This program uses following equation to calculate e .

  • This program can calculate e correctly to 13 places of decimals.

  • The calculation is done by bisection method with Math.NaturalLog operation.


Math.NaturalLog(2.5)=0.916290731874155
Math.NaturalLog(2.75)=1.01160091167848
Math.NaturalLog(2.625)=0.965080896043587
:
:
Math.NaturalLog(2.7182818284586574009153991937)=0.999999999999858
Math.NaturalLog(2.7182818284588847745908424258)=0.999999999999941
Math.NaturalLog(2.7182818284589984614285640418)=0.999999999999983
Math.NaturalLog(2.7182818284590553048474248498)=1
e=2.7182818284590553048474248498
Press any key to continue...

This is the third one: RMF924 .



  • This program uses following equation to calculate e .

  • This program can calculate e correctly to 14 places of decimals.

  • If n is larger than about 7.2E16, the result becomes 1.


n=1 1+1/n=2 e=2
n=16 1+1/n=1.0625 e=2.6379284973666
n=256 1+1/n=1.00390625 e=2.71299162425343
n=4096 1+1/n=1.000244140625 e=2.71795008118967
:
:
n=17592186044416 1+1/n=1.000000000000056843418860808 e=2.71828182845897
n=281474976710656 1+1/n=1.0000000000000035527136788005 e=2.71828182845904
n=4503599627370496 1+1/n=1.000000000000000222044604925 e=2.71828182845904
n=72057594037927936 1+1/n=1.0000000000000000138777878078 e=1
n=1152921504606846976 1+1/n=1.000000000000000000867361738 e=1
n=18446744073709551616 1+1/n=1.0000000000000000000542101086 e=1
:
:
n=1208925819614629174706176 1+1/n=1.0000000000000000000000008272 e=1
n=19342813113834066795298816 1+1/n=1.0000000000000000000000000517 e=1
n=309485009821345068724781056 1+1/n=1.0000000000000000000000000032 e=1
n=4951760157141521099596496896 1+1/n=1.0000000000000000000000000002 e=1

Unhandled Exception: System.OverflowException: Value was either too large or too
small for a Decimal.
at System.Decimal.FCallMultiply(Decimal& d1, Decimal& d2)
at _SmallBasicProgram._Main()
Version history
Last update:
‎Feb 12 2019 04:13 PM
Updated by: