this post was submitted on 12 Dec 2023
843 points (96.6% liked)

Memes

45581 readers
2237 users here now

Rules:

  1. Be civil and nice.
  2. Try not to excessively repost, as a rule of thumb, wait at least 2 months to do it if you have to.

founded 5 years ago
MODERATORS
843
6÷2(1+2) (programming.dev)
submitted 11 months ago* (last edited 11 months ago) by wischi@programming.dev to c/memes@lemmy.ml
 

https://zeta.one/viral-math/

I wrote a (very long) blog post about those viral math problems and am looking for feedback, especially from people who are not convinced that the problem is ambiguous.

It's about a 30min read so thank you in advance if you really take the time to read it, but I think it's worth it if you joined such discussions in the past, but I'm probably biased because I wrote it :)

you are viewing a single comment's thread
view the rest of the comments
[–] uskok@lemmy.world 5 points 11 months ago (2 children)

I agree with your core message, that the issue is caused by bad notation. However I don't really see why you consider implicit multiplication to be the sole reason. In my mind, a/bc is equally as ambiguous as a/b*c. The symbols are not important.

You don't even consider this in your article, instead you seem to take the position that the operations are resolved from left to right. This idea probably comes from programming languages, as they commonly use this convention, but I haven't seen this defined in mathematics anywhere. I'm open to being wrong here, so if you can show me such a definition from an authoritative source (maybe ISO) I'd be thankful.

As it stands, you basically claim "the original notation is ambiguous, but with explicit × the answer is obviously nine, because my two calculators agree", even though you just discounted calculator proofs. By the way, both calculators explicitly define this left-to-right order in their documentation.

The ISO section 7.1.3 you quoted is very reasonable and succinct, and contradicts your claim that explicit multiplication sign removes ambiguity. There would be no need for this section if a left-to-right rule existed.

[–] wischi@programming.dev 4 points 11 months ago* (last edited 11 months ago)

Standards are as mentioned in the article often extra careful to prevent confusion and thus often stricter than widespread conventions with things they allow and don't allow.

a/b*c is not ambiguous because no widespread convention would treat it any other way than (a/b)*c.

But you can certainly try to proof me wrong by showing me a calculator that would evaluate 6/2*3 to anything but 9.

So if there is not a single calculator out there that would come to a different result, how can it be ambiguous?

Update: Standards are rule-books for real projects to make it simpler to work together. It's a bit like a Scrabble dictionary. If a word is missing in the official Scrabble dictionary, it doesn't automatically mean that it's not a real word, it just means that it wouldn't be allowed to play that word in official Scrabble tournaments.

Same with (ISO) standards. Just because the standard forbids it doesn't mean it's not widespread or forbidden generally. It's only forbidden in a context where all participants agreed to follow the standard.

All of the programming languages I can think of apply operator precedence as noted in the first reply. That's the only standard I ever learned, and I've never seen any ambiguity in that.