Hacker News new | ask | show | jobs
by taejo 487 days ago
Excellent comment!

As a historical tidbit I'll add that Romans did develop two ways to write larger numbers.

1. Writing a line (vinculum) over a numeral to multiply its value by 1,000. This was in fact extended to writing a line to the left and above a numeral to multiply its value by 1,000,000, and could in principle be extended to lines below and to the right to multiply by 10^9 and 10^12, and even nested boxes for larger powers.

2. The use |), |)), |))), ... for 500, 5,000, 50,000, ... and (|), ((|)), (((|))), ... for 1,000, 10,000, 100,000, ... These can be continued indefinitely.

https://en.wikipedia.org/wiki/Roman_numerals#Large_numbers

Both require an ever increasing number of marks just to write the increasing powers, as well as an ever increasing number of powers being summed, but both increase only logarithmically, so we end up using O((log n)²) marks to write n. This is quadratically worse than positional notation, but exponentially better than just writing M over and over.

1 comments

Wow, that's amazing! I had somehow never heard of this before despite being into numeral systems. Thank you for sharing!
If you like numeral systems, you might be interested in packages that let one do arithmetic using continued fractions: https://ieeexplore.ieee.org/document/6158099
Note that our use of D and M for the "Roman numerals" 500 and 1000 is a misinterpretation of their |) and (|).
Can you really argue that this use is a "misinterpretation" and not just the usual evolution of written symbols?
Yes, D and M are letters.
Symbols like that can represent all sorts of things, and numbers are no exception! In fact the Romans had been using other letters to represent their numbers since Etruscan times. Wait until you hear the torrid history of the character V (and its "misrepresentation" U).