Advertisement
jukaukor

Neper_e_all_base.jl

Sep 14th, 2023
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. # calculates Neper's constant e=2.71828.. in different bases
  2. # approximation for m!,increasing m from on an
  3. # Stirling: ln(n!) = 0.5*ln(2Ο€n) + n(ln(n)-1)
  4. # initial value of 4 until m! > 10^(n+1)
  5. # ln(10) = 2.302585092994046, ln(2pi)=ln(6.283185307179586)
  6. # Eulerin luvun e desimaalit ( n kpl)
  7. # Juhani Kaukoranta 13.2.2022
  8. function neper(n,b)
  9. # n digits, b base
  10. nro="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  11. cunei =["π’‘²", "𒁹", "π’ˆ«", "π’ˆ", "𒐉", "π’Š", "𒐋", "π’‘‚", "𒐍", "𒑆", "π’Œ‹", "π’Œ‹π’Ή", "π’Œ‹π’ˆ«", "π’Œ‹π’ˆ", "π’Œ‹π’‰", "π’Œ‹π’Š", "π’Œ‹π’‹", "π’Œ‹π’‘‚", "π’Œ‹π’", "π’Œ‹π’‘†", "π’Œ‹π’Œ‹", "π’Œ‹π’Œ‹π’Ή", "π’Œ‹π’Œ‹π’ˆ«", "π’Œ‹π’Œ‹π’ˆ", "π’Œ‹π’Œ‹π’‰", "π’Œ‹π’Œ‹π’Š", "π’Œ‹π’Œ‹π’‹", "π’Œ‹π’Œ‹π’‘‚", "π’Œ‹π’Œ‹π’", "π’Œ‹π’Œ‹π’‘†", "π’Œ", "π’Œπ’Ή", "π’Œπ’ˆ«", "π’Œπ’ˆ", "π’Œπ’‰", "π’Œπ’Š", "π’Œπ’‹", "π’Œπ’‘‚", "π’Œπ’", "π’Œπ’‘†", "𒐏", "𒐏𒁹", "π’π’ˆ«", "π’π’ˆ", "𒐏𒐉", "π’π’Š", "𒐏𒐋", "𒐏𒑂", "𒐏𒐍", "𒐏𒑆", "𒐐", "𒐐𒁹", "π’π’ˆ«", "π’π’ˆ", "𒐐𒐉", "π’π’Š", "𒐐𒐋", "𒐐𒑂", "𒐐𒐍", "𒐐𒑆"]
  12. number = "" # numerot 10-jΓ€rjestelmΓ€ssΓ€
  13. print("base ",b," : ",)
  14. m = 5 # laskentatermien mÀÀrÀ
  15. test = (n+1)*2.302585092994046
  16. while m*(log(m)-1.0) + 0.5*log(6.283185307179586*m) <= test
  17. m += 1
  18. end
  19. if b == 2
  20. print("10.",) # eka e:n numero, kokonaisosa
  21. elseif b == 20
  22. println("Maya :")
  23. println(Char(119522)," (kokonaisosa)")
  24. elseif b == 60
  25. print("Babylonian :")
  26. print(cunei[3],". ") # eka e:n numero, kokonaisosa
  27. else
  28. print("2.",) # eka e:n numero, kokonaisosa
  29. end
  30.  
  31. coef = fill(1,m) # array coef contains only 1
  32. for i in 1:n
  33. carry = 0
  34. for j in reverse(2:m)
  35. temp = coef[j]*b + carry # in base:bin 2,oct 8,dec 10,hex 16
  36. carry = div(temp,j)
  37. coef[j] = temp - carry*j
  38. end # of digit generation
  39. number = number*string(carry)*" "
  40. if b==20 # MAYA numeral symbols
  41. println(Char(119520+carry)) # symbolit alekkain
  42. elseif b == 60 # Babylonian
  43. print(cunei[carry+1]," ",) # symbolit perΓ€kkΓ€in
  44. else
  45. print(nro[carry+1],) # symbolit perΓ€kkΓ€in
  46. end
  47. end
  48. println()
  49. if !(b==10)
  50. println(b,"-jΓ€rjestelmΓ€n e:n numerot esitettynΓ€ 10-jΓ€rjestelmΓ€ssΓ€:")
  51. println("2. ",number)
  52. end
  53. end
  54.  
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement