jukaukor

e_calcul_general.jl

Feb 16th, 2022 (edited)
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. # calculates Euler e in different bases
  2. # prints Maya20, Babylon60 with own characters, other in numbers
  3. # aprroximation for m!,increasing m from on an
  4. # Stirling: ln(n!) = 0.5*ln(2Ο€n) + n(ln(n)-1)
  5. # initial value of 4 until m! > 10^(n+1)
  6. # ln(10) = 2.302585092994046, ln(2pi)=ln(6.283185307179586)
  7. # Eulerin luvun e desimaalit ( n kpl)
  8. # Juhani Kaukoranta 16.2.2022
  9. function e_calcul(n,b)
  10. # n digits, b base
  11. nro="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  12. cunei=["π’‘²", "𒁹", "π’ˆ«", "π’ˆ", "𒐉", "π’Š", "𒐋", "π’‘‚", "𒐍", "𒑆", "π’Œ‹", "π’Œ‹π’Ή", "π’Œ‹π’ˆ«", "π’Œ‹π’ˆ", "π’Œ‹π’‰", "π’Œ‹π’Š", "π’Œ‹π’‹", "π’Œ‹π’‘‚", "π’Œ‹π’", "π’Œ‹π’‘†", "π’Œ‹π’Œ‹", "π’Œ‹π’Œ‹π’Ή", "π’Œ‹π’Œ‹π’ˆ«", "π’Œ‹π’Œ‹π’ˆ", "π’Œ‹π’Œ‹π’‰", "π’Œ‹π’Œ‹π’Š", "π’Œ‹π’Œ‹π’‹", "π’Œ‹π’Œ‹π’‘‚", "π’Œ‹π’Œ‹π’", "π’Œ‹π’Œ‹π’‘†", "π’Œ", "π’Œπ’Ή", "π’Œπ’ˆ«", "π’Œπ’ˆ", "π’Œπ’‰", "π’Œπ’Š", "π’Œπ’‹", "π’Œπ’‘‚", "π’Œπ’", "π’Œπ’‘†", "𒐏", "𒐏𒁹", "π’π’ˆ«", "π’π’ˆ", "𒐏𒐉", "π’π’Š", "𒐏𒐋", "𒐏𒑂", "𒐏𒐍", "𒐏𒑆", "𒐐", "𒐐𒁹", "π’π’ˆ«", "π’π’ˆ", "𒐐𒐉", "π’π’Š", "𒐐𒐋", "𒐐𒑂", "𒐐𒐍", "𒐐𒑆"]
  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 binÀÀrinumero
  21. end
  22. if b == 20
  23. println("Maya :")
  24. println(Char(119522),"."," (kokonaisosa)")
  25. end
  26. if b == 60
  27. print("Babylon60: ",cunei[3]," . ") # eka numeron nuolepÀÀmerkki
  28. end
  29. if (!(b==2)&&!(b==20)&&!(b==60))
  30. print("2.",) # eka e:n numero
  31. end
  32. coef = fill(1,m) # array coef contains only 1
  33. for i in 1:n
  34. carry = 0
  35. for j in reverse(2:m)
  36. temp = coef[j]*b + carry # in base:bin 2,oct 8,dec 10,hex 16
  37. carry = div(temp,j)
  38. coef[j] = temp - carry*j
  39. end # of digit generation
  40. if b==2
  41. print(carry,)
  42. end
  43. if b==20 # MAYA numeral symbols classic style topdown
  44. println(Char(119520+carry))
  45. end
  46. if b == 60 # Babylon60-nuolenpÀÀmerkit
  47. print(cunei[carry+1]," ",) # prints e digits, on by one
  48. end
  49. if !((b==2)||(b==20)||(b==60))
  50. print(nro[carry+1],)
  51. end
  52. end
  53. println()
  54. end
  55.  
  56.  
Add Comment
Please, Sign In to add comment