Live data from Hacker News

How did anyone do math in Roman numerals? (2017)

washingtoncitypaper.com

91–100 of 132 posts

Re: How did anyone do math in Roman numerals? (2017)

#91
post #31

Earlier quoted context omitted.

But that's the thing about Roman numerals: you don't need a placeholder number to represent empty columns. And for "what is XVI subtracted from XVI" they could just use a word meaning "nothing", such as nihil or nihilum . The need for the concept of zero as we understand it really only arises together with a place-value system.

Thanks for explaining that clearly. I've always been so baffled by people who claim that some society didn't have a concept for zero, as if "inventing" zero marks some major advance in intelligence. Every culture has a concept of "nothing" which works for zero. The ancient Greeks debated over whether nothing was a number or not, but that's just a semantic splitting of hairs. At some point a symbol for nothing becomes…

> Every culture has a concept of "nothing" which works for zero. The ancient Greeks debated over whether nothing was a number or not, but that's just a semantic splitting of hairs.

Nonsense. Zero being a number is the conceptual leap. It's important.

Re: How did anyone do math in Roman numerals? (2017)

#92
post #88

Earlier quoted context omitted.

Whiggish bullshit. Functional code and GC were invented in 1959. Some level of static typing was de rigeur in most application-development languages after assembly and before the scripting boom starting in the late 80s. In Coders At Work Frances Allen bemoaned the effect C's popularity had on automated program analysis since 1970: > C has destroyed our ability to advance the state of the art in automatic optimization…

So Rust, Python, Julia etc are no more productive, safe, or easy to use than programming was in 1959?

Rust maybe, python definitely no and Julia I don't know a lot.

Re: How did anyone do math in Roman numerals? (2017)

#93
post #64

Earlier quoted context omitted.

I wonder if arabic numerals really are the best system. Too much inertia is invested in them now but I wonder if a yet easier representation exists. For example, I know that there was a brief push to use quaternions in physics.

Base 12 is likely better than base 10. Twelve is the number of phalanges on your hand that you can touch with your thumb, so if that counting system had caught on and stuck we'd likely have a better base for divisibility.

Cool idea.

Re: How did anyone do math in Roman numerals? (2017)

#94
post #76

Earlier quoted context omitted.

Adding Roman numerals, at least, isn’t hard. If it was I doubt Roman numerals would have ever lasted. Arabic is still, in my opinion, easier to add—from the perspective of a lifetime spent exclusively doing arithmetic in Arabic numerals—but it’s not much easier until you’ve memorized all 50 unique sums of one-digit numbers. Multiplication, though, that’s the real difference maker.

Please explain the easy method for adding, for example MCMLXVII and LXV. I mean that seriously, I'm curious what the trick is.

Tokenize, concatenate, sort, reduce.

MCMLXVII + LXV

M CM L X V I I + L X V

M CM L X V I I L X V

M CM L L X X V V I I

V+V=X, L+L=C, C+CM=M so MMXXXII. Convert everything to decimal if you wanna check my work.

Note that converting CM to DCCCC is actually pretty unnecessary since you can just combine CM and C to make M instead of having to count up lots of C’s. A computer algorithm would be simpler by reducing CM to DCCC but adjusting for human fallibility, allowing for CM + C = M makes things a little easier.

Also note that this method scales to any number of sums, not just adding two numbers together.

Re: How did anyone do math in Roman numerals? (2017)

#95
post #72
post #40

Earlier quoted context omitted.

This is absolutely the case for programming languages. From Haskell to Rust. Programming languages shape the way we think and reason about the problem. Sometimes it does this so well, it leaves us starring into the abyss. Facing dead on the problem domain—after all sides quests have been removed. Once you can delegate away all the busy work, you can focus on bigger and better abstractions.

Both Haskell and Rust are poor examples because one has to focus more on the notation (i.e. types, declarations, etc). Python is better.

In python you have to focus more on the debugging where this run-time type-error came from. Also, Haskell has type inference unlike the other two.

Re: How did anyone do math in Roman numerals? (2017)

#96
post #76

Earlier quoted context omitted.

Please explain the easy method for adding, for example MCMLXVII and LXV. I mean that seriously, I'm curious what the trick is.

MCMLXVII + LXV = MCCCCCCCCCLXVII + LXV (canonicalize) = MCCCCCCCCCLXVIILXV (concatenate) = MCCCCCCCCCLLXXVVII (sort) = MCCCCCCCCCLLXXXII (combine, VV => X) = MCCCCCCCCCCXXXII (... keep combining, LL => C) = MMXXXII (... C{10} => M, nothing left to combine) = MMXXXII (optionally, look for ways to re-write with the subtraction rule)

I originally thought canonicalize was an important step, but it actually isn’t for humans. For humans, CCCCCCCCC requires a lot more tedious counting than CM or even DCCCC, leading to more errors than simply allowing the human to notice that CM+C=M.

Re: How did anyone do math in Roman numerals? (2017)

#97
post #72
post #40

Earlier quoted context omitted.

This is absolutely the case for programming languages. From Haskell to Rust. Programming languages shape the way we think and reason about the problem. Sometimes it does this so well, it leaves us starring into the abyss. Facing dead on the problem domain—after all sides quests have been removed. Once you can delegate away all the busy work, you can focus on bigger and better abstractions.

Both Haskell and Rust are poor examples because one has to focus more on the notation (i.e. types, declarations, etc). Python is better.

You had to learn 0,1,2,3, etc. at some point. The thing with notation is that it takes time to learn, but it proves profoundly useful over time. The benefit of notation integrated over your career outweighs the adoption costs.

Arabic numbers are like this (no child immediately ‘groks’ Arabic numbers), and Haskell notation is making the same case. Haskell abbreviates abstract structures so that they become fluid.

If focusing on notation is a problem, then we should all have grown up to use our fingers for counting, not Arabic numerals.

Re: How did anyone do math in Roman numerals? (2017)

#98
post #88

Earlier quoted context omitted.

So Rust, Python, Julia etc are no more productive, safe, or easy to use than programming was in 1959?

Rust maybe, python definitely no and Julia I don't know a lot.

How is Python definitely not "safe, productive and easy to use". It has faults, but these three are not them.

Re: How did anyone do math in Roman numerals? (2017)

#99
post #34
post #18

Earlier quoted context omitted.

"Did the clumsiness of doing calculations in Roman numerals keep them from developing more complex systems of numerical calculation?" Probably? I mean, look what the world achieved after it left roman numerals behind.

> look what the world achieved after it left roman numerals behind. Look what the world achieved after we started wearing button shirts.

Perhaps it would be expressed better as Look at what mathematics achieved after it left Roman numerals behind.

Re: How did anyone do math in Roman numerals? (2017)

#100
post #67

Earlier quoted context omitted.

Adding Roman numerals, at least, isn’t hard. If it was I doubt Roman numerals would have ever lasted. Arabic is still, in my opinion, easier to add—from the perspective of a lifetime spent exclusively doing arithmetic in Arabic numerals—but it’s not much easier until you’ve memorized all 50 unique sums of one-digit numbers. Multiplication, though, that’s the real difference maker.

> Adding Roman numerals, at least, isn’t hard. I find it insanely difficult - but as you note, a lifetime of arabic numerals, and a lack of skill in appropriate tools (eg. an abacus) will skew that comparison. > ... but it’s not much easier until you’ve memorized all 50 unique sums of one-digit numbers. This doesn't feel right. I don't think I have memorised the sum of all pairs of 1-digit numbers - but contemplating…

I was going off the rough estimate that 0-9 is 10 digits and 10x10 is 100 but that reduces to 50 thanks to commutativity. I think 45 if you don’t count zeroes—I don’t know where you get 36 from.

I also use the term “memorize” pretty loosely—I remember that memorizing times tables was a thing but not so much for plus—but addition is simple enough that most people can kind of intuit what 7+4 heuristically if they’re sat down and forced to do arithmetic as small children for long enough. (Also I’ve never had the patience for memorization; I just rely on my brain to cache things that I use frequently and it ended up working for times tables. Also other things.)

But I do want to acknowledge that Arabic numerals make multiplication nearly as easy as addition, which is a staggering achievement over Roman numerals.

Though I will say, on the other hand, that the Romans weren’t that stupid and neither were their medieval successors prior to the adoption of Arabic numerals. They could add things up and we’ve discussed in a parallel thread how that algorithm works. The Roman numeral system isn’t as optimized informationally—let’s not underestimate the sheer awesomeness of seamlessly expressing numbers as large as 108730026190037365462849562635965—but that would be useless to most cultures that used Roman numerals.

I would even question one more thing. To someone who doesn’t know a numeral system to begin with, do Arabic numerals actually make addition harder? I mean, very small children (and programming languages like JavaScript if you accidentally express one number as a string) sometimes make the mistake of thinking 11+8=118, but in Roman numerals that’s just like saying XI + VIII = XIVIII, which is also wrong, but not as wrong as 118. A Roman child could easily be taught no, that’s XVIIII since V’s go before I’s, and then maybe reduce to XVIV. A child today is like, “wait wtf are places?” Roman numeral users never have to learn the concepts of places, carry, or borrow, which honestly sounds like a good trade off for a civilization that doesn’t have to do multiplication and division that easily.

Post reply on HN