// Numbas version: finer_feedback_settings {"name": "Inverse operations", "metadata": {"description": "
A quick practice set of problems for education students to take in preparation for their numeracy test.
", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "duration": 0, "percentPass": 0, "showQuestionGroupNames": false, "shuffleQuestionGroups": false, "showstudentname": true, "question_groups": [{"name": "Group", "pickingStrategy": "all-ordered", "pickQuestions": 1, "questionNames": ["", "", "", "", ""], "variable_overrides": [[], [], [], [], []], "questions": [{"name": "Inverse operations: one step worded", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": [], "metadata": {"description": "", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"operation_ed": {"name": "operation_ed", "group": "Ungrouped variables", "definition": "[\"added\", \"subtracted\", \"multiplied\", \"divided\"][seed]", "description": "", "templateType": "anything", "can_override": false}, "modifier": {"name": "modifier", "group": "Ungrouped variables", "definition": "random(20..80 except 20..80#10)", "description": "", "templateType": "anything", "can_override": false}, "display": {"name": "display", "group": "Ungrouped variables", "definition": "random(12..50#0.01)", "description": "", "templateType": "anything", "can_override": false}, "seed": {"name": "seed", "group": "Ungrouped variables", "definition": "random(0..3)", "description": "", "templateType": "anything", "can_override": false}, "inverse_list": {"name": "inverse_list", "group": "Ungrouped variables", "definition": "[\"subtract\", \"add\", \"divide by\", \"multiply by\"]", "description": "", "templateType": "anything", "can_override": false}, "operation_ing": {"name": "operation_ing", "group": "Ungrouped variables", "definition": "[\"adding\", \"subtracting\", \"multipling by\", \"dividing by\"][seed]", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["seed", "operation_ed", "inverse_list", "modifier", "display", "operation_ing"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Suppose you have used a calculator to do a long string of back-to-back calculations. You had the answer but before you could write it down you accidentally {operation_ed} $\\var{modifier}$ and got an answer of $\\var{display}$.
\nWhat should you do?
\n", "stepsPenalty": "1", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "
\"Plus\", \"minus\", \"times\", \"divide\" are operations. The operation that undoes a specific operation is its inverse. We can think of this as the opposite or reverse operation.
\n\nOperation | \nIts inverse | \n
$+$ | \n$-$ | \n
$-$ | \n$+$ | \n
$\\times$ | \n$\\div$ | \n
$\\div$ | \n$\\times$ | \n
So to undo accidentally {operation_ing} $\\var{modifier}$, we should {inverse_list[seed]} $\\var{modifier}$.
\nYou see, you made a number $\\var{modifier}$ more than you wanted, so you better make it $\\var{modifier}$ less.
\nYou see, you made a number $\\var{modifier}$ less than you wanted, so you better make it $\\var{modifier}$ more.
\nYou see, you made a number $\\var{modifier}$ times bigger than you wanted, so we better make it $\\var{modifier}$ times smaller.
\nYou see, you made a number $\\var{modifier}$ times smaller than you wanted, so you better make it $\\var{modifier}$ times bigger.
"}], "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "radiogroup", "displayColumns": "1", "showCellAnswerState": true, "choices": ["Subtract $\\var{modifier}$ from $\\var{display}$", "Add $\\var{modifier}$ to $\\var{display}$", "Divide $\\var{display}$ by $\\var{modifier}$", "Multiply $\\var{display}$ by $\\var{modifier}$", "Start the whole calculation again"], "matrix": ["if(seed=0,1,0)", "if(seed=1,1,0)", "if(seed=2,1,0)", "if(seed=3,1,0)", 0], "distractors": ["", "", "", "", "Well, you could, but that would take a lot of time"]}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Inverse operations: two step worded", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": [], "metadata": {"description": "", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"modifier1": {"name": "modifier1", "group": "Ungrouped variables", "definition": "random(20..80 except 20..80#10)", "description": "", "templateType": "anything", "can_override": false}, "seed1": {"name": "seed1", "group": "Ungrouped variables", "definition": "random(0..3)", "description": "", "templateType": "anything", "can_override": false}, "inverse_list": {"name": "inverse_list", "group": "Ungrouped variables", "definition": "[\"subtract\", \"add\", \"divide by\", \"multiply by\"]", "description": "", "templateType": "anything", "can_override": false}, "original": {"name": "original", "group": "Ungrouped variables", "definition": "random(-50..50 except -1..2)", "description": "", "templateType": "anything", "can_override": false}, "step1": {"name": "step1", "group": "Ungrouped variables", "definition": "[original+modifier1, original-modifier1, original*modifier1, original/modifier1][seed1]", "description": "[\"added\", \"subtracted\", \"multiplied\", \"divided\"]
", "templateType": "anything", "can_override": false}, "step2": {"name": "step2", "group": "Ungrouped variables", "definition": "[step1+modifier2, step1-modifier2, step1*modifier2, step1/modifier2][seed2]", "description": "", "templateType": "anything", "can_override": false}, "modifier2": {"name": "modifier2", "group": "Ungrouped variables", "definition": "random(20..80 except 20..80#10 except modifier1)", "description": "", "templateType": "anything", "can_override": false}, "operation1": {"name": "operation1", "group": "Ungrouped variables", "definition": "[\"add\", \"subtract\", \"multiply by\", \"divide by\"][seed1]", "description": "", "templateType": "anything", "can_override": false}, "operation2": {"name": "operation2", "group": "Ungrouped variables", "definition": "[\"add\", \"subtract\", \"multiply by\", \"divide by\"][seed2]", "description": "", "templateType": "anything", "can_override": false}, "seed2": {"name": "seed2", "group": "Ungrouped variables", "definition": "random(0..3 except seed1)", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["seed1", "seed2", "inverse_list", "modifier1", "original", "step1", "step2", "modifier2", "operation1", "operation2"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "I take a number and {operation1} $\\var{modifier1}$. I then take the result and {operation2} $\\var{modifier2}$, and this results in $\\var[fractionNumbers]{step2}$.
\nHow could you work out the original number?
\n\nTake $\\var[fractionNumbers]{step2}$ and [[0]] [[1]] and then [[2]] [[3]] to get [[4]].
", "stepsPenalty": "5", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "\"Plus\", \"minus\", \"times\", \"divide\" are operations. The operation that undoes a specific operation is its inverse. We can think of this as the opposite or reverse operation.
\n\nOperation | \nIts inverse | \n
$+$ | \n$-$ | \n
$-$ | \n$+$ | \n
$\\times$ | \n$\\div$ | \n
$\\div$ | \n$\\times$ | \n
Another thing we need to realise is to undo a sequence of operations we need to undo them in the reverse order that they occurred in.
\nFor example, if you put your socks on and then your shoes, to undo this, we have to take the shoes off first and then take the socks off second (notice the order).
\nIn particular, for our question:
\nTo undo the last operation of \"{operation2} $\\var{modifier2}$\" we start with $\\var[fractionNumbers]{step2}$ and {inverse_list[seed2]} $\\var{modifier2}$.
\nNow we have $\\var[fractionNumbers]{step1}$.
\nThen to undo the original operation of \"{operation1} $\\var{modifier1}$\" we take $\\var[fractionNumbers]{step1}$ and {inverse_list[seed1]} $\\var{modifier1}$.
\nThis results in $\\var{original}$, which must be the original number.
"}], "gaps": [{"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": false, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["add", "subtract", "multiply by", "divide by"], "matrix": ["if(seed2=1,1,0)", "if(seed2=0,1,0)", "if(seed2=3,1,0)", "if(seed2=2,1,0)"], "distractors": ["", "", "", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["{modifier1}", "{modifier2}"], "matrix": ["0", "1"], "distractors": ["", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": false, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["add", "subtract", "multiply by", "divide by"], "matrix": ["if(seed1=1,1,0)", "if(seed1=0,1,0)", "if(seed1=3,1,0)", "if(seed1=2,1,0)"], "distractors": ["", "", "", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["{modifier1}", "{modifier2}"], "matrix": ["1", 0], "distractors": ["", ""]}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "{original}", "maxValue": "{original}", "correctAnswerFraction": false, "allowFractions": true, "mustBeReduced": false, "mustBeReducedPC": 0, "displayAnswer": "", "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Inverse operations: two step symbolic", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": [], "metadata": {"description": "", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"modifier1": {"name": "modifier1", "group": "Ungrouped variables", "definition": "random(20..80 except 20..80#10)", "description": "", "templateType": "anything", "can_override": false}, "seed1": {"name": "seed1", "group": "Ungrouped variables", "definition": "random(0..3)", "description": "[\"add\", \"subtract\", \"multiply by\", \"divide by\"]
", "templateType": "anything", "can_override": false}, "inverse_list": {"name": "inverse_list", "group": "Ungrouped variables", "definition": "[\"subtract\", \"add\", \"divide by\", \"multiply by\"]", "description": "", "templateType": "anything", "can_override": false}, "original": {"name": "original", "group": "Ungrouped variables", "definition": "random(-50..50 except -1..2)", "description": "", "templateType": "anything", "can_override": false}, "step1": {"name": "step1", "group": "Ungrouped variables", "definition": "[original+modifier1, original-modifier1, original*modifier1, original/modifier1][seed1]", "description": "[\"added\", \"subtracted\", \"multiplied\", \"divided\"]
", "templateType": "anything", "can_override": false}, "step2": {"name": "step2", "group": "Ungrouped variables", "definition": "[step1+modifier2, step1-modifier2, step1*modifier2, step1/modifier2][seed2]", "description": "", "templateType": "anything", "can_override": false}, "modifier2": {"name": "modifier2", "group": "Ungrouped variables", "definition": "random(20..80 except 20..80#10 except modifier1)", "description": "", "templateType": "anything", "can_override": false}, "operation1": {"name": "operation1", "group": "Ungrouped variables", "definition": "[\"add\", \"subtract\", \"multiply by\", \"divide by\"][seed1]", "description": "", "templateType": "anything", "can_override": false}, "operation2": {"name": "operation2", "group": "Ungrouped variables", "definition": "[\"add\", \"subtract\", \"multiply by\", \"divide by\"][seed2]", "description": "", "templateType": "anything", "can_override": false}, "seed2": {"name": "seed2", "group": "Ungrouped variables", "definition": "if(seed1=0 or seed1=1, random(2,3),random(0,1))", "description": "[\"add\", \"subtract\", \"multiply by\", \"divide by\"]
", "templateType": "anything", "can_override": false}, "expression": {"name": "expression", "group": "Ungrouped variables", "definition": "[[\n \"error\",\n \"error\",\n\"\\\\var[fractionNumbers]\\{step2\\}=\\\\var\\{modifier2\\}\\\\times(\\\\var\\{pro\\}+\\\\var\\{modifier1\\})\",\n\"\\\\var[fractionNumbers]\\{step2\\}=\\\\frac\\{\\\\var\\{pro\\}+\\\\var\\{modifier1\\}\\}\\{\\\\var\\{modifier2\\}\\}\"\n],\n[\n \"error\",\n \"error\",\n\"\\\\var[fractionNumbers]\\{step2\\}=\\\\var\\{modifier2\\}\\\\times(\\\\var\\{pro\\}-\\\\var\\{modifier1\\})\",\n\"\\\\var[fractionNumbers]\\{step2\\}=\\\\frac\\{\\\\var\\{pro\\}-\\\\var\\{modifier1\\}\\}\\{\\\\var\\{modifier2\\}\\}\" \n],\n[\n\"\\\\var[fractionNumbers]\\{step2\\}=\\\\var\\{modifier1\\}\\\\times\\\\var\\{pro\\}+\\\\var\\{modifier2\\}\",\n\"\\\\var[fractionNumbers]\\{step2\\}=\\\\var\\{modifier1\\}\\\\times\\\\var\\{pro\\}-\\\\var\\{modifier2\\}\",\n \"error\",\n \"error\"\n],\n[\n\"\\\\var[fractionNumbers]\\{step2\\}=\\\\frac\\{\\\\var\\{pro\\}\\}\\{\\\\var\\{modifier1\\}\\}+\\\\var\\{modifier2\\}\",\n\"\\\\var[fractionNumbers]\\{step2\\}=\\\\frac\\{\\\\var\\{pro\\}\\}\\{\\\\var\\{modifier1\\}\\}-\\\\var\\{modifier2\\}\",\n \"error\",\n \"error\" \n]][seed1][seed2]\n", "description": "[\"add\", \"subtract\", \"multiply by\", \"divide by\"]
", "templateType": "anything", "can_override": false}, "pro": {"name": "pro", "group": "Ungrouped variables", "definition": "expression(random('a','b','c','d','w','x','y','z'))", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["seed1", "seed2", "inverse_list", "modifier1", "original", "step1", "step2", "modifier2", "operation1", "operation2", "expression", "pro"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Given {latex(expression)},
\nto find the value of $\\var{pro}$ we can
\ntake $\\var[fractionNumbers]{step2}$ and [[0]] [[1]] and then [[2]] [[3]] to get $\\var{pro}=$ [[4]].
", "stepsPenalty": "5", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "\"Plus\", \"minus\", \"times\", \"divide\" are operations. The operation that undoes a specific operation is its inverse. We can think of this as the opposite or reverse operation.
\n\nOperation | \nIts inverse | \n
$+$ | \n$-$ | \n
$-$ | \n$+$ | \n
$\\times$ | \n$\\div$ | \n
$\\div$ | \n$\\times$ | \n
Another thing we need to realise is to undo a sequence of operations we need to undo them in the reverse order that they occurred in.
\nFor example, if you put your socks on and then your shoes, to undo this, we have to take the shoes off first and then take the socks off second (notice the order).
\nIf we look at {latex(expression)} and follow what happens to $\\var{pro}$ (using the order of operations) we can see that starting with $\\var{pro}$ we {operation1} $\\var{modifier1}$ and then we {operation2} $\\var{modifier2}$. This results in $\\var[fractionNumbers]{step2}$.
\n\nTo undo the last operation of \"{operation2} $\\var{modifier2}$\" we start with $\\var[fractionNumbers]{step2}$ and {inverse_list[seed2]} $\\var{modifier2}$.
\nNow we have $\\var[fractionnumbers]{step1}$.
\nThen to undo the original operation of \"{operation1} $\\var{modifier1}$\" we take $\\var[fractionNumbers]{step1}$ and {inverse_list[seed1]} $\\var{modifier1}$.
\nThis results in $\\var{original}$, which must be the original number $\\var{pro}$.
"}], "gaps": [{"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": false, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["add", "subtract", "multiply by", "divide by"], "matrix": ["if(seed2=1,1,0)", "if(seed2=0,1,0)", "if(seed2=3,1,0)", "if(seed2=2,1,0)"], "distractors": ["", "", "", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["{modifier1}", "{modifier2}"], "matrix": ["0", "1"], "distractors": ["", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": false, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["add", "subtract", "multiply by", "divide by"], "matrix": ["if(seed1=1,1,0)", "if(seed1=0,1,0)", "if(seed1=3,1,0)", "if(seed1=2,1,0)"], "distractors": ["", "", "", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["{modifier1}", "{modifier2}"], "matrix": ["1", 0], "distractors": ["", ""]}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "{original}", "maxValue": "{original}", "correctAnswerFraction": false, "allowFractions": true, "mustBeReduced": false, "mustBeReducedPC": 0, "displayAnswer": "", "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Inverse operations: two step context", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": [], "metadata": {"description": "", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"modifier1": {"name": "modifier1", "group": "Ungrouped variables", "definition": "switch(seed1=3, random(terminating_decimal(2,50)),seed1=1, random(0.1*original..0.8*original), random(20..80 except 20..80#10))", "description": "", "templateType": "anything", "can_override": false}, "seed1": {"name": "seed1", "group": "Ungrouped variables", "definition": "random(0..3)", "description": "", "templateType": "anything", "can_override": false}, "inverse_list": {"name": "inverse_list", "group": "Ungrouped variables", "definition": "[\"subtract\", \"add\", \"divide by\", \"multiply by\"]", "description": "", "templateType": "anything", "can_override": false}, "original": {"name": "original", "group": "Ungrouped variables", "definition": "switch(seed1=3 or seed2=3,random(200..800#10),random(25..200))", "description": "", "templateType": "anything", "can_override": false}, "step1": {"name": "step1", "group": "Ungrouped variables", "definition": "[original+modifier1, original-modifier1, original*modifier1, original/modifier1][seed1]", "description": "[\"added\", \"subtracted\", \"multiplied\", \"divided\"]
", "templateType": "anything", "can_override": false}, "step2": {"name": "step2", "group": "Ungrouped variables", "definition": "[step1+modifier2, step1-modifier2, step1*modifier2, step1/modifier2][seed2]", "description": "", "templateType": "anything", "can_override": false}, "modifier2": {"name": "modifier2", "group": "Ungrouped variables", "definition": "switch(seed2=3, random(terminating_decimal(2,50)),seed2=1,random(0.1*step1..0.8*step1) ,random(20..80 except 20..80#10 except modifier1)) ", "description": "", "templateType": "anything", "can_override": false}, "operation1": {"name": "operation1", "group": "Ungrouped variables", "definition": "[[\"Your friend gives you \\$\\\\$\\\\var{modifier1}\\$.\", \"You spend \\$\\\\$\\\\var{modifier1}\\$.\", \"You convince \\$\\\\var{modifier1-1}\\$ other people with the same amount of money as you to give you theirs!\", \"You share your money equally between yourself and \\$\\\\var{modifier1-1}\\$ other people.\"][seed1],\n[\"You pour in an extra \\$\\\\\\var{modifier1}\\$ mL into the container.\", \"You remove \\$\\\\\\var{modifier1}\\$ mL from the container.\", \"You find there are $\\\\var{modifier1-1}$ other containers with the same amount of liquid in the cupboard and take them all as your own and put all the liquid in one large container.\", \"You share the liquid out evenly between $\\\\var{modifier1}$ smaller containers and then immediately trip and break all but one!\"][seed1]\n][switch]\n//[\"add\", \"subtract\", \"multiply by\", \"divide by\"][seed1]", "description": "", "templateType": "anything", "can_override": false}, "operation2": {"name": "operation2", "group": "Ungrouped variables", "definition": "[[\"your friend gives you \\$\\\\$\\\\var{modifier2}\\$\", \"you spend \\$\\\\$\\\\var{modifier2}\\$\", \"you convince \\$\\\\var{modifier2-1}\\$ other people with the same amount of money as you to give you theirs\", \"you share the money equally between yourself and \\$\\\\var{modifier2-1}\\$ other people\"][seed2]\n,[\"you pour in an extra \\$\\\\\\var{modifier2}\\$ mL\", \"you remove \\$\\\\\\var{modifier2}\\$ mL\", \"you find there are $\\\\var{modifier2-1}$ other containers now with the same amount of liquid in them in the cupboard and take them all as your own. You put all of the liquid in one large container\", \"you share all the liquid out evenly between $\\\\var{modifier2}$ smaller containers and then immediately trip and break all but one!\"][seed2]\n][switch]\n //[\"add\", \"subtract\", \"multiply by\", \"divide by\"][seed2]", "description": "", "templateType": "anything", "can_override": false}, "seed2": {"name": "seed2", "group": "Ungrouped variables", "definition": "random(0..3 except seed1)", "description": "", "templateType": "anything", "can_override": false}, "switch": {"name": "switch", "group": "Ungrouped variables", "definition": "random(0,1)", "description": "money or liquid
", "templateType": "anything", "can_override": false}, "intro": {"name": "intro", "group": "Ungrouped variables", "definition": "[\"You have some money.\", \"You have a container with some amount of liquid in it.\"][switch]", "description": "", "templateType": "anything", "can_override": false}, "result": {"name": "result", "group": "Ungrouped variables", "definition": "[\"You now have \\$\\\\$\\\\var{step2}\\$.\\n\\nHow could you work out the original amount of money you had?\", \"You now have \\$\\\\var{step2}\\$ mL.\\n\\nHow could you work out the original amount of liquid you had?\"][switch]", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["switch", "intro", "seed1", "seed2", "inverse_list", "modifier1", "original", "step1", "step2", "modifier2", "operation1", "operation2", "result"], "variable_groups": [], "functions": {"terminating_decimal": {"parameters": [["p", "number"], ["q", "number"]], "type": "anything", "language": "jme", "definition": "map(j+p,j,indices(map(sum(factorise(k)[1..2]+factorise(k)[3..len(factorise(k))]),k,p..q),0))\n//terminating_decimal(p,q) generates a list of integers from the range [p,q] that only have factors of 2 and/or 5 (and therefore can be used in divisions to result in only terminating decimals)."}}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "{intro} {operation1} Then {operation2}. {result}
\n\nTake $\\$$$\\var{step2}$ mL and [[0]] [[1]] and then [[2]] [[3]] to get $\\$$[[4]] mL.
\n", "stepsPenalty": "5", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "\"Plus\", \"minus\", \"times\", \"divide\" are operations. The operation that undoes a specific operation is its inverse. We can think of this as the opposite or reverse operation.
\n\nOperation | \nIts inverse | \n
$+$ | \n$-$ | \n
$-$ | \n$+$ | \n
$\\times$ | \n$\\div$ | \n
$\\div$ | \n$\\times$ | \n
Another thing we need to realise is to undo a sequence of operations we need to undo them in the reverse order that they occurred in.
\nFor example, if you put your socks on and then your shoes, to undo this, we have to take the shoes off first and then take the socks off second (notice the order).
\nIn particular, for our question:
\nTo undo the last operation of \"{operation2}\" we start with $\\var{step2}$ and {inverse_list[seed2]} $\\var{modifier2}$ (since your money was included)(since your container was included).
\nNow we have $\\var{step1}$.
\nThen to undo the original operation of \"{operation1}\" we take $\\var{step1}$ and {inverse_list[seed1]} $\\var{modifier1}$ (since your money was included)(since your container was included).
\nThis results in $\\var{original}$, which must be the original amount.
\n"}], "gaps": [{"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": false, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["add", "subtract", "multiply by", "divide by"], "matrix": ["if(seed2=1,1,0)", "if(seed2=0,1,0)", "if(seed2=3,1,0)", "if(seed2=2,1,0)"], "distractors": ["", "", "", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["{modifier1}", "{modifier2}", "{modifier1-1}", "{modifier2-1}"], "matrix": ["0", "1", 0, 0], "distractors": ["", "", "", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": false, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["add", "subtract", "multiply by", "divide by"], "matrix": ["if(seed1=1,1,0)", "if(seed1=0,1,0)", "if(seed1=3,1,0)", "if(seed1=2,1,0)"], "distractors": ["", "", "", ""]}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "dropdownlist", "displayColumns": 0, "showCellAnswerState": true, "choices": ["{modifier1}", "{modifier2}", "{modifier1-1}", "{modifier2-1}"], "matrix": ["1", 0, 0, 0], "distractors": ["", "", "", ""]}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "{original}", "maxValue": "{original}", "correctAnswerFraction": false, "allowFractions": true, "mustBeReduced": false, "mustBeReducedPC": 0, "displayAnswer": "", "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Inverse formula: Cost/duration of phone calls", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": [], "metadata": {"description": "", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"list": {"name": "list", "group": "Ungrouped variables", "definition": "shuffle([\n [\"BANGLADESH\",0.40, 1.96, 2.26], \n [\"HAITI\", 0.40, 2.93, 2.93],\n [\"SWITZERLAND\", 0.40, 0.75, 1.31],\n [\"FRANCE\", 0.40, 0.75, 1.31],\n [\"BRAZIL\", 0.40, 1.31, 1.58],\n [\"ARGENTINA\", 0.40 ,1.31, 1.58],\n [\"IRAN\", 0.40 ,1.39, 1.61],\n [\"GERMANY\", 0.40, 0.75, 1.31],\n [\"UNITED KINGDOM\", 0.40, 0.55 ,1.13],\n [\"NEW ZEALAND\", 0.40 , 0.44, 1.03],\n [\"KOREA REPUBLIC OF\", 0.40, 1.01, 1.31],\n [\"JAPAN\", 0.40, 0.75, 1.31],\n [\"SINGAPORE\", 0.40, 0.69 ,1.04],\n [\"BARBADOS\", 0.40, 1.96, 1.97],\n[\"HAWAII\", 0.40, 0.44, 0.45],\n[\"IRAQ\", 0.40, 2.32, 2.33],\n[\"CANADA\", 0.40, 0.64, 0.65],\n[\"SPAIN\", 0.40, 2.52 ,2.53],\n[\"COSTA RICA\", 0.40, 2.10, 2.12],\n[\"ANTARCTICA\", 0.40, 0.81, 0.82]\n])[0..4]", "description": "https://www.telstra.com.au/mobile-phones/calling-overseas-from-australia
", "templateType": "anything", "can_override": false}, "type": {"name": "type", "group": "Ungrouped variables", "definition": "if(type_seed=2, 'fixed line', 'international (non-roaming) mobile')", "description": "", "templateType": "anything", "can_override": false}, "country": {"name": "country", "group": "Ungrouped variables", "definition": "random(list)", "description": "", "templateType": "anything", "can_override": false}, "n": {"name": "n", "group": "Ungrouped variables", "definition": "len(country[0])+1", "description": "", "templateType": "anything", "can_override": false}, "type_seed": {"name": "type_seed", "group": "Ungrouped variables", "definition": "random(2,3)", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["list", "country", "type_seed", "type", "n"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "A phone company charges the following rates for the following destinations.
\n\nThis means the formula for the cost $C$ in dollars of an $m$ minute phone call to an {type} in {country[0][0]+lower(country[0][1..n])} is
\n$C=\\var{country[1]}+\\var{country[type_seed]}m$.
\n\nIn the field below, complete the formula for the number of minutes, $m$, that a phone call must be if it cost $C$ dollars and is to an {type} in {country[0][0]+lower(country[0][1..n])}.
\n$m=$[[0]]
\nNote 1: The warning \"Not enough arguments for operation ...\" simply means you haven't finished yet!
\nNote 2: You shouldn't leave off the first zero of a decimal.
\nNote 3: You can use * for multiplication and / for division.
", "stepsPenalty": "1", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Since we are told that
\n$C=\\var{country[1]}+\\var{country[type_seed]}m$
\nwe can do the inverse operations in the reverse order to get $m$ by itself.
\n\nSince the last operation to happen to $m$ is adding $\\var{country[1]}$ we can undo this by subtracting $\\var{country[1]}$ from both sides of the equation to have
\n$C-\\var{country[1]}=\\var{country[type_seed]}m$.
\nNow the only operation happening to $m$ is multiplication by $\\var{country[type_seed]}$. We can undo this by dividing both sides of the equation by $\\var{country[type_seed]}$ to have
\n$\\dfrac{C-\\var{country[1]}}{\\var{country[type_seed]}}=m$.
\nWe can swap the sides and write
\n$m=\\dfrac{C-\\var{country[1]}}{\\var{country[type_seed]}}$.
\nCompare this to the original equation.
\nFirst, you need to make sense of the table.
\nFind the row that corresponds to {country[0][0]+lower(country[0][1..n])}. Notice that there is a connection fee of $\\$\\var{country[1]}$.
\nFind the column for the type of phone to be rung, i.e. {type}. The cell at the intersection of the row and column of interest is the charge per minute, in your case $\\$\\var{country[type_seed]}$ per minute.
\n\nSince the cost includes a connection fee of $\\$\\var{country[1]}$ regardless of the duration, we should subtract this from the cost $C$ so we can focus on the cost from the duration of the call, that is $C-\\var{country[1]}$.
\nSince each minute costs $\\$\\var{country[type_seed]}$, we should take our cost from the duration and see how many $\\$\\var{country[type_seed]}$ go into it. That is $\\dfrac{C-\\var{country[1]}}{\\var{country[type_seed]}}$. This must be the number of minutes!
\nTherefore
\n$m=\\dfrac{C-\\var{country[1]}}{\\var{country[type_seed]}}$.
\n\n\n"}], "gaps": [{"type": "jme", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "(C-{country[1]})/{country[type_seed]}", "showPreview": true, "checkingType": "absdiff", "checkingAccuracy": 0.001, "failureRate": 1, "vsetRangePoints": 5, "vsetRange": [0, 1], "checkVariableNames": true, "singleLetterVariables": false, "allowUnknownFunctions": true, "implicitFunctionComposition": false, "caseSensitive": false, "valuegenerators": [{"name": "c", "value": ""}]}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}]}], "allowPrinting": true, "navigation": {"allowregen": true, "reverse": true, "browse": true, "allowsteps": true, "showfrontpage": false, "showresultspage": "oncompletion", "navigatemode": "sequence", "onleave": {"action": "none", "message": ""}, "preventleave": true, "startpassword": "", "allowAttemptDownload": false, "downloadEncryptionKey": ""}, "timing": {"allowPause": true, "timeout": {"action": "none", "message": ""}, "timedwarning": {"action": "none", "message": ""}}, "feedback": {"showactualmark": true, "showtotalmark": true, "showanswerstate": true, "allowrevealanswer": true, "advicethreshold": 0, "intro": "", "end_message": "", "reviewshowscore": true, "reviewshowfeedback": true, "reviewshowexpectedanswer": true, "reviewshowadvice": true, "feedbackmessages": [], "enterreviewmodeimmediately": true, "showexpectedanswerswhen": "inreview", "showpartfeedbackmessageswhen": "always", "showactualmarkwhen": "always", "showtotalmarkwhen": "always", "showanswerstatewhen": "always", "showadvicewhen": "inreview"}, "diagnostic": {"knowledge_graph": {"topics": [], "learning_objectives": []}, "script": "diagnosys", "customScript": ""}, "type": "exam", "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "extensions": [], "custom_part_types": [], "resources": []}