Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Muunnos 10-kantaisesta kokonaisluvusta baylonialaiseen nuolenpäämerkkeihin
- # Babylonian nuolenpääluvut,cuneiform, oli 60-kantainen
- # Juhani Kaukoranta 18.4.2021
- function DecToBabylonia(n)
- # n muunnettava 10-jarjestelmän luku, Babylonian 60 on kohdekantaluku
- # tulostus nuolenpääkirjoituksena, cuneiform
- # Lukua 0 vastaa tässä nuolenpäämerkki "𒑲" (Babyloniassa sen paikalla oli tyhjä)
- cunei =["𒑲", "𒁹", "𒈫", "𒐈", "𒐉", "𒐊", "𒐋", "𒑂", "𒐍", "𒑆", "𒌋", "𒌋𒁹", "𒌋𒈫", "𒌋𒐈", "𒌋𒐉", "𒌋𒐊", "𒌋𒐋", "𒌋𒑂", "𒌋𒐍", "𒌋𒑆", "𒌋𒌋", "𒌋𒌋𒁹", "𒌋𒌋𒈫", "𒌋𒌋𒐈", "𒌋𒌋𒐉", "𒌋𒌋𒐊", "𒌋𒌋𒐋", "𒌋𒌋𒑂", "𒌋𒌋𒐍", "𒌋𒌋𒑆", "𒌍", "𒌍𒁹", "𒌍𒈫", "𒌍𒐈", "𒌍𒐉", "𒌍𒐊", "𒌍𒐋", "𒌍𒑂", "𒌍𒐍", "𒌍𒑆", "𒐏", "𒐏𒁹", "𒐏𒈫", "𒐏𒐈", "𒐏𒐉", "𒐏𒐊", "𒐏𒐋", "𒐏𒑂", "𒐏𒐍", "𒐏𒑆", "𒐐", "𒐐𒁹", "𒐐𒈫", "𒐐𒐈", "𒐐𒐉", "𒐐𒐊", "𒐐𒐋", "𒐐𒑂", "𒐐𒐍", "𒐐𒑆"]
- # nuolenpäämerkit vastaavat arvoja 0 - 59, alunperin babylonialaiset jättivät nollan tyhjäksi paikaksi
- A ="" # merkkijonoon A kerätään babylonialaiset nuolenpäämerkit
- x = n
- nbase = 60 # Babylonian kantalukujärjestelmä
- temp = div(x,nbase)
- while temp >= 0
- if x-temp*nbase < nbase
- newnum = cunei[x-temp*nbase+1] # valitaan nuolenpäämerkki
- end
- A = newnum*A
- if n >= nbase
- A = " "*A # välilyönti merkin eteen, kun luku > 60
- else
- return A # kuului perusmerkkeihin < 60
- end
- x = temp
- temp = div(x,nbase)
- if temp == 0 # viimeinen, uusi kierros
- if x < nbase
- newnum = cunei[x+1]
- end
- A = newnum*A
- return A
- end
- end
- end
Add Comment
Please, Sign In to add comment