Restart Story

Maybe it was cheaper to build calculators that work in immediate execution mode. The poor calculator only needs to remember two numbers (the last result, the current number) and which arithmetic option you pressed last.\n\n/% Example here %/The calculator has no memory of your equation; it simply process each part as it comes. This means that worrying about order of operations is up to you; Captain Calculator Pilot.\n\n* <<choice "OrderOfOperations" "Busy little calculator! Alright, let's hear about Order of Operations">>
This problem only deals with multiplication, addition and subtraction so we'll forget about brackets and exponents for now. I'll use brackets to highlight the terms of the equation that will be solved next.\n\n= 0 + 50 * 1 - 60 - 60 * 0 + 10\n\nFirst, let's do the multiplications from left to right\n= 0 +(50 * 1)- 60 -(60 * 0)+ 10\n= 0 +(50)- 60 -(0)+ 10\n= 0 + 50 - 60 - 0 + 10\n\nLet's get rid of some useless zero terms (add or subtract zero because it has no effect:\n= 0 + 50 - 60 - 0 + 10\n= 50 - 60 + 10\n\nNow, we solve addition and subtraction working from left to right\n= (50 - 60) + 10\n= -10 + 10\n= 0\n\n\nNow you've got it; please consider sharing with others or exploring the other answers to see why people make certain common mistakes.\n\n<<display "TryAgain">>
// Needed to allow loops back through text while keeping output linear\n// Might as well suppress title and toolbar while we're at it\nPassage.prototype.render = function() {\n var passagediv = insertElement(null, 'div', 'passage' + this.title + 'j' + (new Date).getTime(), 'passage');\n = 'hidden';\n passagediv.setAttribute('data-tags', this.tags.join(' '));\n var body = insertElement(passagediv, 'div', '', 'body');\n new Wikifier(body, this.text);\n // event handlers\n passagediv.onmouseover = function() { passagediv.className += ' selected' };\n passagediv.onmouseout = function() { passagediv.className = passagediv.className.replace(' selected', ''); };\n return passagediv;\n};\n\n//And hack the choice macro - no going back!\nmacros['choice'].activate = function (el, destination) {\n var parentDiv = el.parentNode;\n while (parentDiv.className.indexOf('body') == -1)\n parentDiv = parentDiv.parentNode;\n var title =;\n var links = parentDiv.getElementsByTagName('a');\n var trashed = [];\n for (var i = 0; i < links.length; i++)\n// if ((links[i] != el) && (links[i].className.indexOf('choice') != -1)) {\n if (links[i].className.indexOf('choice') != -1) {\n var span = document.createElement('span');\n span.innerHTML = links[i].innerHTML;\n span.className = 'disabled';\n links[i].parentNode.insertBefore(span, links[i].nextSibling);\n trashed.push(links[i]);\n };\n tale.get(title).text = '<html>' + parentDiv.childNodes[0].innerHTML + '</html>';\n state.display(destination, el);\n for (var i = 0; i < trashed.length; i++)\n trashed[i].parentNode.removeChild(trashed[i]);\n}
The order of operations has not changed. It's just my opinion that BEMA is much clearer than the other acronyms.\nThe P in PEMA / PEDMAS stands for "parentheses". That's exactly the same as "brackets/braces" so I'll just use B for now.\n\nLets use the example of BEDMAS:\nB - brackets\nE - exponents\nDM - division and multiplication\nAS - addition and subtraction\n\nThe problem is that sometimes people forget that DM happen at the same time in left to right order. It's just too easy to mistakenly do division before multiplication and addition before subtraction. BEMA forces you to recall that division is just "inverse multiplication" and subtraction is "inverse addition". That's why I prefer BEMA.\n\n* <<choice "StickWithOtherAcronym" "Ok. But I like my way better">>\n* <<choice "BreakItDown" "Right, I think I got that. Can you take me through it step by step?">>
<<display "RealStart">>
That's not the correct answer. But would you mind emailing your answer to so\nthat this GameStory can be improved? I want to explore why/how people arrive at the answers\nthat they do. It's called Constructivist Learning Theory in case you were wondering.\n\nMany thanks.\n\n<<display "TryAgain">>
Thanks for exploring.\n\nEND
Yeah google is pretty great huh! If you put this equation into Google then it'll solve it. You'll notice that it puts brackets around some parts of the equation. This is to make the order of operations clear.\n\n* <<choice "OrderOfOperations" "What is this order of operations thing you speak of?">>\n* <<choice "BreakItDown" "Google only gives me the answer, can you explain it?">>
Cool. Whatever works for you. What matters is that you get the calculation right!\n\n* <<choice "BreakItDown" "Just to be sure, can you take me through the problem step by step?">>\n* <<choice "TryAgain" "Got it">>
Correct.\n\n* <<choice "IAmGood" "I can do this in my sleep">>\n* <<choice "GoogledIt" "Yeah, ummmmm, actually I just asked Google">>
Order of Operations governs the order in which operators are processed. \n\nFirst some words; operand, operator\nAn equation is made up of "operands" (in this case numbers) and "operators" (the arithmetic symbols). Arithmetic operators are called "binary operators" because they require two operands to produce a single result. That single result then replaces the operands and operator. If that result is the only thing left then you have an answer to the math problem. Otherwise, that result can become the operand of another operator.\n\nThere is a strictly defined order for processing operators which controls the way the soak up the operands around them. <<display "BEMA">>\n\n<<display "PostOoONav">>
Math Problem
Would you like to explore other options?\n\n* <<choice "Attempt" "Yes">>\n* <<choice "GameOver" "No">>\n<<br>><<br>>
What is the answer to this math problem?\n\n0 + 50 * 1 - 60 - 60 * 0 + 10 = ?\n\n\n* <<choice "Negative Sixty">>\n* <<choice "Negative Twenty">>\n* <<choice "Zero">>\n* <<choice "Ten">>\n* <<choice "Other">>
I'm guessing that you got your answer by working left to right? I'm sure you solved the sub-parts of the equation correctly. But it is not correct to simply solve from left to right without considering the proper order of operations.\n\n* <<choice "UsedCalculator" "I just verified my answer on a calculator. Are you saying that my calculator be wrong?">>\n* <<choice "WrongSimpleZeroPlusTen" "Look, it's simple: whatever multiplied by zero. So basically the equation is just 0 plus ten">>\n* <<choice "OrderOfOperations" "Ok, tell me about Order of Operations">>
One acronym for this is BEMA.\n\nB = Brackets\nE = Exponents\nM = Multiplication and Division\nA = Addition and Subtraction
.passage .title { display:none; }\nbody { background-color: #000; color: #36f; font-family: monospace; }\n#content2, .passage, #passages, h1, h2, h3 { background-color: #003; color: #69f; font-family: monospace; }\n#content2 { padding: 1em 2.5em; }\n#passages { padding-bottom: 5em; }\n.passage { font-size: 12px; line-height: 17px; }\na.internalLink, a.externalLink, .disabled { color: #06f; }\n.disabled { font-style: normal; }\n#footer { position: fixed; bottom: 1em; right: 1em; width: 15em; background-color: #000; text-align: left; color: #006; }\nh1 { text-align: left; font-size: 28px; line-height: 34px; }\nh2 { text-align: left; font-size: 17px; line-height: 17px; font-style: normal; font-weight: bold; }\nh3 { text-align: left; font-size: 14px; line-height: 17px; font-weight: bold; margin: 0; padding: 0; }\n#storyTitle { display: block; text-align: center; font-size: 34px; line-height: 34px; }
It's good that you're thinking about how to simplify equations, but there's a tiny fault in your rules. Let's review Order or Operations.\n\n* <<choice "OrderOfOperations" "Okay, what are order of operations?">>\n* <<choice "Opinion" "Fault? That's just your opinion">>
The opinion I share with every mathematician since ... ages is that arithmetic symbols now have defined and precise meanings. There is no room for opinion; there is correct and incorrect. I've heard the numbers guys call math the "Queen of Sciences" because mathematics (at least at this level) is the only field of knowledge that can be proven.\n\n<<display "TryAgain">>
So you know something about order of operations. Neat. Let me guess; you learnt an acronym ending in MAS. Maybe BODMAS, PEDMAS, or something. You're almost correct except addition and subtraction happen in the same left to right sweep. Multiplication and division).\n\nMultiplications first:\n0 + (50 * 1) - 60 - (60 * 0) + 10 = ?\n0 + 50 - 60 - 0 + 10 = ?\n\nSo what now? Addition before subtraction? (wrong)\n(0 + 50) - 60 - (0 + 10) = ?\n50 - 60 - 10 = ?\n\nAnd that gives: -20.\n\n\nMaybe you eliminated the "zero terms" where an add or subtract by zero exists:\n0 + (50 * 1) - 60 - (60 * 0) + 10 = ?\n0 + 50 - 60 - 0 + 10 = ?\n50 - 60 + 10 = ? (zero terms are eliminated)\n50 - (60 + 10) = ? (incorrectly put addition before subtraction)\n50 - 70 = ?\nGiving: -20\n \n \nI like to think of order of operations using: BEMA. <<display "BEMA">>\n\n* <<choice "OtherAcronyms" "Hey! I learnt a different acronym: PODMAS, BODMAS, BEDMAS, BEMDAS or something. When did it change?">>\n* <<choice "BreakItDown" "Right, I think I got that. Can you take me through the correct method step by step?">>
Glad to hear! It might surprise you to know that many people get this wrong. Would you mind sharing this GameStory with them so they have a chance to learn? Thanks!\nOr you could explore some of the incorrect answers so you can see which misconceptions lead there.\n\n<<display "TryAgain">>
Ten is not the correct answer. Don't worry - a lot of people make this mistake. Let's talk about it.\n\n* <<choice "UsedCalculator" "Liar! How can my calculator be wrong?">>\n* <<choice "LeftToRightByHand" "I double checked my figures">>
Hello. <<display "Attempt">>
try { macros['br'] = { \n\n handler: function(place,macroName,params,parser) {\n new Wikifier(place, '<html><br></html>');\n },\n\n init: function() { }\n \n};} catch(e) { \n throwError(place,"Macro br Error: "+e.message); \n}
It's pretty easy to forget about order of operations stuff but most people can remember solve inside of brackets first. You can make the order of operations apparent by adding brackets.\n\ne.g. 4 + 4 * 2 = ?\n\n12? Yes! multiplication comes first so: 4 * 2 = 8 and 4 + 8 = 12\n16?'s not 4 + 4 = 8 and 8 * 2 = 16.\n\nBut this is easier to understand and effectively means the same thing.\n4 + (4 * 2) = ?\n\n<<display "PostOoONav">>
I'm guessing that you calculated by inputting the equation from left to right? Well, your calculator is not wrong, it was just never intended to be all that smart. Most simple calculators use "immediate execution" mode where they will instantly calculate each part of the equation as you go. They do not understand the proper rules about order of operations. They expect you to do that.\n\n* <<choice "ImmediateExecutionMode" "Tell me more about Immediate Execution">>\n* <<choice "WrongSimpleZeroPlusTen" "Look, it's simple: whatever multiplied by zero. So basically the equation is just 0 plus ten">>\n* <<choice "OrderOfOperations" "Ok, tell me about Order of Operations">>
Let me guess... there was a point where you went -70 * 0 = -70, then adding 10 makes -60.\nWell, anything multiplied by zero 0 is zero. So that answer should've been -70 * 0 = 0.\n\n0 * 0 = 0\n1000000000000000000 * 0 = 0\n-3.1415926 * 0 = 0\n\nSo you'd come out with a -70 * 0 = 0, 0 + 10 = 10. It turns out that ten is still not the correct answer. But we should fix one thing at a time right.\n\n<<choice "Ten" "I see how zero times anything is zero. Are you sure that ten not the correct answer?">>
* <<choice "OtherAcronyms" "Hey! I learnt a different acronym: PODMAS, BODMAS, BEDMAS, BEMDAS or something. When did it change?">>\n* <<choice "ATip" "Is there a way I can make this clearer for people who might forget about order of operations stuff?">>\n* <<choice "BreakItDown" "Right, I think I got that. Can you take me through it step by step?">>
E. Turner