Live data from Hacker News

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

washingtoncitypaper.com

81–90 of 132 posts

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

#81
post #9

In An Introduction to Mathematics (1911) Alfred North Whitehead wrote: By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental power of the race. Before the introduction of the Arabic notation, multiplication was difficult, and the division even of integers called into play the highest mathematical faculties. Probably…

Nice quotes. The first one is how I think about programming languages as well. We've moved from binary/punchcards, to assembly, to imperative and declarative layers, to OO/functional code that can be statically analyzed, and systems designs that can be automatically verified. There's all sorts of memory management tools from manual allocation and freeing, to garbage collection and reference counting, and optionals to…

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, automatic parallelization, automatic mapping of a high-level language to the machine.

"Progress" in CS remains fad-driven pop culture churn.

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

#82
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.

MCMLXVII+LXV = MCMLLXXVVII = MMXXXII

Addition in Roman numerals is dead simple: you do it by just bunching symbols together. The only difficulty is subtractive notation, which wasn’t really used in Ancient Rome.

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

#83

Not really related to the article per se but I always find it interesting how one may become tempted to say "this alternative to a thing I already know makes so much sense , why don't we always use it?" I felt the same way when encountering Chinese numbers via Japanese. If 二 is two, 十 is ten, 四 is four, and twenty-four is 二十四, that's so clear! Two tens and four! I quickly decided that this number system, though somet…

Living in Japan, I became accustomed to using numbers for up to around 10,000 yen ($100USD) due to interactions at the stores and around town, but when I would hear the price of a car (1,000,000+ yen or 100 myriad yen) or a house, it would just confuse me and not register at all. It’s all just based on your personal experience, I think.

I have the same experience with German reversed way of speaking numerals, yet I speak the language fluently, including a good understanding of Swiss German as well.

But reversing back the numbers into my Portuguese brain, just doesn't work after a certain size.

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

#85

Earlier quoted context omitted.

Probably? I mean, look what the world achieved after it left roman numerals behind. Yet the Romans were able to construct aqueducts that are still standing, and a road network spanning thousands of miles, and many other great feats of civil engineering.

Sure. But they did those things by experience and rules of thumb. They didn't do a real stress analysis on those aqueducts, for instance.

They didn't do a real stress analysis on those aqueducts, for instance.

The Romans tested bridges by having the engineers stand under while a legion marched over.

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

#86
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.

Types in Haskell are generally used to describe the structure of the data. Defining a type in Haskell is like writing documentation and a test all in one. I can mentally offload certain concerns to the compiler, which will tell me whether or not the shape of the data in my head matches the code I'm writing. I pretty frequently use the compiler to guide my development, especially with a tool ghcid, which gives instantaneous feedback as I'm programming. It's also like a million times easier to refactor, I tweak a type signature and the compiler will basically give me a list of things I need to update. No need to hunt for and test every instance of that kind of input, the compiler just tells me where it is, and what is wrong.

You also don't have to write out type signatures 99.9% of the time after declaring a type, the compiler can infer them. People in the Haskell community tend to write out signatures for functions because it makes it easier to understand, but it's pretty rare to see a type signature in the body of a function.

That's not to say thinking in Haskell is always as natural or more natural than Python, but I'd argue that immutability and laziness more than types can require a lot more mental effort that can feel like fitting square pegs into round holes for certain problems. When it comes to types (at least Haskell vs. Python), I'd say it's much more a matter of personal taste.

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

#87
post #43
post #14

Why would it be significantly harder than using some other system of numerals?

Well, you can try and then you'll appreciate the difference, I am sure. Even if implemented in computer hardware, operating with Roman numerals would either be slow or take many more transistors (or both). As to why in a philosophical sense, it is because the positional system was invented specifically as a computational device, which only happened many years after people learned how write numbers down. Optimization…

We all do the same thing. Our calculators work in binary, and we only do i/o in decimal. Their calculators (slaves who pushed pebbles, calculi, around) worked in a decimal place-value system (or used egyptian/russian peasant multiplication), and only the i/o was done in roman numerals.

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

#88

Earlier quoted context omitted.

Nice quotes. The first one is how I think about programming languages as well. We've moved from binary/punchcards, to assembly, to imperative and declarative layers, to OO/functional code that can be statically analyzed, and systems designs that can be automatically verified. There's all sorts of memory management tools from manual allocation and freeing, to garbage collection and reference counting, and optionals to…

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?

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

#89

Earlier quoted context omitted.

Nice quotes. The first one is how I think about programming languages as well. We've moved from binary/punchcards, to assembly, to imperative and declarative layers, to OO/functional code that can be statically analyzed, and systems designs that can be automatically verified. There's all sorts of memory management tools from manual allocation and freeing, to garbage collection and reference counting, and optionals to…

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…

Woah don't cut yourself on that edge there mister.

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

#90
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 think the practical way of thinking would be:

- seeing L + L = C and converting CM to M ( basically striking L L and C )

- then V + V = X, ( striking Vs and add an X)

Then write whats left:

MMXXXII

Then try to re-write.

Post reply on HN