jukaukor

DecToBabylonia.jl

Feb 15th, 2022 (edited)
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. # Muunnos 10-kantaisesta kokonaisluvusta baylonialaiseen nuolenpäämerkkeihin
  2. # Babylonian nuolenpääluvut,cuneiform, oli 60-kantainen
  3. # Juhani Kaukoranta 18.4.2021
  4.  
  5. function DecToBabylonia(n)
  6. # n muunnettava 10-jarjestelmän luku, Babylonian 60 on kohdekantaluku
  7. # tulostus nuolenpääkirjoituksena, cuneiform
  8. # Lukua 0 vastaa tässä nuolenpäämerkki "𒑲" (Babyloniassa sen paikalla oli tyhjä)
  9.  
  10. cunei =["𒑲", "𒁹", "𒈫", "𒐈", "𒐉", "𒐊", "𒐋", "𒑂", "𒐍", "𒑆", "𒌋", "𒌋𒁹", "𒌋𒈫", "𒌋𒐈", "𒌋𒐉", "𒌋𒐊", "𒌋𒐋", "𒌋𒑂", "𒌋𒐍", "𒌋𒑆", "𒌋𒌋", "𒌋𒌋𒁹", "𒌋𒌋𒈫", "𒌋𒌋𒐈", "𒌋𒌋𒐉", "𒌋𒌋𒐊", "𒌋𒌋𒐋", "𒌋𒌋𒑂", "𒌋𒌋𒐍", "𒌋𒌋𒑆", "𒌍", "𒌍𒁹", "𒌍𒈫", "𒌍𒐈", "𒌍𒐉", "𒌍𒐊", "𒌍𒐋", "𒌍𒑂", "𒌍𒐍", "𒌍𒑆", "𒐏", "𒐏𒁹", "𒐏𒈫", "𒐏𒐈", "𒐏𒐉", "𒐏𒐊", "𒐏𒐋", "𒐏𒑂", "𒐏𒐍", "𒐏𒑆", "𒐐", "𒐐𒁹", "𒐐𒈫", "𒐐𒐈", "𒐐𒐉", "𒐐𒐊", "𒐐𒐋", "𒐐𒑂", "𒐐𒐍", "𒐐𒑆"]
  11. # nuolenpäämerkit vastaavat arvoja 0 - 59, alunperin babylonialaiset jättivät nollan tyhjäksi paikaksi
  12. A ="" # merkkijonoon A kerätään babylonialaiset nuolenpäämerkit
  13. x = n
  14. nbase = 60 # Babylonian kantalukujärjestelmä
  15. temp = div(x,nbase)
  16. while temp >= 0
  17. if x-temp*nbase < nbase
  18. newnum = cunei[x-temp*nbase+1] # valitaan nuolenpäämerkki
  19. end
  20. A = newnum*A
  21. if n >= nbase
  22. A = " "*A # välilyönti merkin eteen, kun luku > 60
  23. else
  24. return A # kuului perusmerkkeihin < 60
  25. end
  26. x = temp
  27. temp = div(x,nbase)
  28. if temp == 0 # viimeinen, uusi kierros
  29. if x < nbase
  30. newnum = cunei[x+1]
  31. end
  32. A = newnum*A
  33. return A
  34. end
  35. end
  36. end
  37.  
Add Comment
Please, Sign In to add comment