I would also add that you shouldn’t be using a basic calculator to solve multi part problems. Second, I haven’t seen a division sign used in a formal math class since elementary and possibly junior high. These things are almost always written as fractions which makes the logic easier to follow. The entire point of working in convention is so that results are reproducible. The real problem though is that these are not written to educate anyone. They are deliberately written to confuse so that some social media personality can make money from clicks. If someone really wants to practice math skip the click and head over to the Kahn Academy or something similar.
You probably missed the part where the article talks about university level math, and that strong juxtaposition is common there.
I also think that many conventions are bad, but once they exist, their badness doesn’t make them stop being used and relied on by a lot of people.
I don’t have any skin in the game as I never ran into ambiguity. My university professors simply always used fractions, therefore completely getting rid of any possible ambiguity.
I don’t have much to say on this, other than that I appreciate how well-written this deep dive is and I appreciate you for writing it. People get so polarized with these viral math problems and it baffles me.
I think it depends what branch your local version of the repo is set to. If you’re already in master then it’ll push there, if you’re in a testing branch then you can push it straight to master instead by telling it to
Kinda. You can’t define a name, but you can get the compiler to interpret literals as a function. If you have a Num instance for (Integer -> Integer) where,
fromInteger i = x -> x * i
the compiler can interpret integer literals as functions like so
I always hate any viral math post for the simple reason that it gives me PTSD flashbacks to my Real Analysis classes.
The blog post is fine, but could definitely be condensed quite a bit across the board and still effectively make the same points would be my only critique.
At it core Mathematics is the language and practices used in order to communicate numbers to one another and it’s always nice to have someone reasonably argue that any ambiguity of communication means that you’re not communicating effectively.
Hi! Nice blog post. Since you asked for feedback I’ll point out the one thing I didn’t really understand. You explain the difference between the calculators by showing excerpts from the manuals and you highlight that in the first manual, implicit multiplication is prioritised. But the text you underlined only refers to implicit multiplication involving special expressions(?) like pi, e, sqrt or log, and nothing about “regular” implicit multiplication like 2(1+3). So while your photos of the calculator results are great proof that the two models use a different order of operations, to me the manuals were a bit confusing since they did not actually seem to prove your point for the example math problems you are discussing. Or maybe I missed something?
You are right the manual isn’t very clear here. My guess is that parentheses are also considered Type B functions. I actually chose those calculators because I have them here and can test things and because they split the implicit multiplication priority. Most other calculators just state “implicit multiplication” and that’s it.
My guess is that the list of Type B functions is not complete but implicit multiplication with parentheses should be considered important enough for it to be documented.
You lost me on the section when you started going into different calculators, but I read the rest of the post. Well written even if I ultimately disagree!
The reason imo there is ambiguity with these math problems is bad/outdated teaching. The way I was taught pemdas, you always do the left-most operations first, while otherwise still following the ordering.
Doing this for 6÷2(1+2), there is no ambiguity that the answer is 9. You do your parentheses first as always, 6÷2(3), and then since division and multiplication are equal in ordering weight, you do the division first because it’s the left most operation, leaving us 3(3), which is of course 9.
If someone wrote this equation with the intention that the answer is 1, they wrote the equation wrong, simple as that.
There has apparently been historical disagreement over whether 6÷2(3) is equivalent to 6÷2x3
As a logician instead of a mathemetician, the answer is “they’re both wrong because they have proven themselves ambiguous”. Of course, my answer would be RPN to be a jerk or just have more parens to be a programmer
The calculator section is actually pretty important, because it shows how there is no consensus. Sharp is especially interesting with respect to your comment because all scientific Sharp calculators say it’s 1. For all the other brands for hardware calculators there are roughly 50:50 with saying 1 and 9.
So I’m not sure if you are suggesting that thousands of experts and hundreds of engineers at Casio, Texas Instruments, HP and Sharp got it wrong and you got it right?
There really is no agreed upon standard even amongst experts.
Hi, expert here, calculators have nothing to do with it. There’s an agreed upon “Order of Operations” that we teach to kids, and there’s a mutual agreement that it’s only approximately correct. Calculators have to pick an explicit parsing algorithm, humans don’t have to and so they don’t. I don’t look to a dictionary to tell me what I mean when I speak to another human.
Thanks for putting my thoughts into words, that’s exactly why I hate math. It was supposed to be the logical one, but since it only needs to be parsed by humans it failed at even that. It’s just conventions upon conventions to the point where it’s notably different from one teacher/professor to the next.
I guess you can tell why I went into comp-sci (and also why I’m struggling there too)
No, those companies aren’t wrong, but they’re not entirely right either. The answer to “6 ÷ 2(1+2)” is 1 on those calculators because that is a badly written equation and you(not literally you, to be clear) should feel bad for writing it, and the calculators can’t handle it with their rigid hardcoded logic. The ones that do give the correct answer of 9 on that equation will get other equations wrong that it shouldn’t be, again because the logic is hardcoded.
That doesn’t change the fact that that equation worked out on paper is absolutely 9 based on modern rules of math. Calculate the parentheses first, you then have 6 ÷ 2(3). We could solve from here, but to make the point extra clear I’m going to actually expand this out to explicit multiplication. “2(3)” is the same as “2 x 3”, so we can rewrite the equation as “6 ÷ 2 x 3”. All operators now inarguably have equal precedence, which means the only factor left in which order to do the operations is left to right, and thus division first. The answer can only be 9.
If you’d ever taken any advanced math, you’d see that the answer is 1 all day. The implicit multiplication is done before the division because anyone taking advanced math would see 2(1+2) as a term that must be resolved first. The answer still lies in the ambiguity of the way the problem is written though. If the author used fractions instead of that stupid division symbol, there would be no ambiguity. It’s either 6/2 x 3 = 9 or [6/(2x3)] = 1. Comment formatting aside, if someone put 6 in the numerator, and then did or did NOT put all the rest in the denominator underneath a horizontal bar, it would be obvious.
TL;DR It’s still a formatting issue, but 9 is definitely not the clear and only answer.
programming.dev
Newest