// Numbas version: exam_results_page_options {"name": "1.3.3.3 Expand (a+b)(c+d)", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "1.3.3.3 Expand (a+b)(c+d)", "tags": [], "metadata": {"description": "

Expand (a+b)(c+d). a,b,c,d are random terms that can be +ve or -ve, and can consist of a number and/or a letter.

\n

The answer must contain no brackets but will be accepted if it is not simplified from there.

\n

Part of HELM Book 1.3

", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "

Practise these questions repeatedly until you are very confident at removing brackets.

", "advice": "

\\[\\begin{align*}(\\var{te[0]})(\\var{te[1]})&=(\\var{te[0]})\\times(\\var{te[1]})\\\\ &=(\\var{te[2]})(\\var{te[1]})+(\\var{te[3]})(\\var{te[1]}) \\\\ &=(\\var{te[4]})+(\\var{te[5]})\\\\&=\\var{q2ans}   \\end{align*}\\]

", "rulesets": {}, "extensions": [], "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"q2expr": {"name": "q2expr", "group": "question 2", "definition": "q2exprs[q2idx]", "description": "", "templateType": "anything", "can_override": false}, "q2ans": {"name": "q2ans", "group": "question 2", "definition": "simplify(expression(q2expr),[\"all\",\"expandBrackets\"])", "description": "", "templateType": "anything", "can_override": false}, "alphabet": {"name": "alphabet", "group": "Ungrouped variables", "definition": "['a','b','c','d','f','g','h','k','m','n','p','q','r','s','t','u','v','w','x','y','z']", "description": "", "templateType": "anything", "can_override": false}, "q2idx": {"name": "q2idx", "group": "question 2", "definition": "random(0..4)", "description": "", "templateType": "anything", "can_override": false}, "q2exprs": {"name": "q2exprs", "group": "question 2", "definition": "[\"(\"+ q2signs[0] + q2cstr[0] + q2signs[1] + q2v[0] + \")(\" \n + q2signs[2] + q2cstr[1] + q2signs[3] + q2v[1]+\")\",\n \"(\"+ q2signs[0] + q2cstr[2] + q2v[0] + q2signs[1] + q2cstr[0] + \")(\"\n + q2signs[2] + q2cstr[3] + q2v[0] + q2signs[3] + q2cstr[1] + \")\",\n \"(\"+ q2signs[0] + q2cstr[0] + q2signs[1] + q2cstr[2] + q2v[0] + \")(\" \n + q2signs[2] + q2cstr[3] + q2v[0] + q2signs[3] + q2cstr[1] + \")\",\n \"(\"+ q2signs[0] + q2cstr[2] + q2v[0] + q2signs[1] + q2cstr[0] + \")(\"\n + q2signs[2] + q2cstr[1] + q2signs[3] + q2cstr[3] + q2v[0] + \")\",\n \"(\"+ q2signs[0] + q2cstr[0] + q2signs[1] + q2cstr[2] + q2v[0] + \")(\"\n + q2signs[2] + q2cstr[1] + q2signs[3] + q2cstr[3] + q2v[0] + \")\" \n ]", "description": "

(2+a)(3+b), (x+1)(x+2), (1+x)(x+2), (x+1)(2+x), (1+x)(2+x)

", "templateType": "anything", "can_override": false}, "q2c": {"name": "q2c", "group": "question 2", "definition": "[random(1..9),\n random(1..9),\n weighted_random([[1,0.7],[random(2..9),0.3] ]),\n weighted_random([[1,0.7],[random(2..9),0.3] ])\n]", "description": "

const 1, const 2, coeff 1, coeff 2

", "templateType": "anything", "can_override": false}, "q2signs": {"name": "q2signs", "group": "question 2", "definition": "[random(\"\",\"-\"),random(\"+\",\"-\"),random(\"\",\"-\"),random(\"+\",\"-\")]", "description": "", "templateType": "anything", "can_override": false}, "q2cstr": {"name": "q2cstr", "group": "question 2", "definition": "[string(q2c[0]),\n string(q2c[1]),\n if(q2c[2]=1,\"\",string(q2c[2])),\n if(q2c[3]=1,\"\",string(q2c[3]))\n ]", "description": "", "templateType": "anything", "can_override": false}, "q2v": {"name": "q2v", "group": "question 2", "definition": "shuffle(alphabet)[0..4]", "description": "", "templateType": "anything", "can_override": false}, "terms": {"name": "terms", "group": "question 2", "definition": "[[\"(\"+ q2signs[0] + q2cstr[0] + q2signs[1] + q2v[0] + \")\",\"(\" \n + q2signs[2] + q2cstr[1] + q2signs[3] + q2v[1]+\")\",\n q2signs[0] + q2cstr[0],\n q2signs[1] + q2v[0]\n ],\n [\"(\"+ q2signs[0] + q2cstr[2] + q2v[0] + q2signs[1] + q2cstr[0] + \")\",\"(\"\n + q2signs[2] + q2cstr[3] + q2v[0] + q2signs[3] + q2cstr[1] + \")\",\n q2signs[0] + q2cstr[2] + q2v[0],\n q2signs[1] + q2cstr[0]\n ],\n [\"(\"+ q2signs[0] + q2cstr[0] + q2signs[1] + q2cstr[2] + q2v[0] + \")\",\"(\" \n + q2signs[2] + q2cstr[3] + q2v[0] + q2signs[3] + q2cstr[1] + \")\",\n q2signs[0] + q2cstr[0],\n q2signs[1] + q2cstr[2] + q2v[0]\n ],\n [\"(\"+ q2signs[0] + q2cstr[2] + q2v[0] + q2signs[1] + q2cstr[0] + \")\",\"(\"\n + q2signs[2] + q2cstr[1] + q2signs[3] + q2cstr[3] + q2v[0] + \")\",\n q2signs[0] + q2cstr[2] + q2v[0],\n q2signs[1] + q2cstr[0]\n ],\n [\"(\"+ q2signs[0] + q2cstr[0] + q2signs[1] + q2cstr[2] + q2v[0] + \")\",\"(\"\n + q2signs[2] + q2cstr[1] + q2signs[3] + q2cstr[3] + q2v[0] + \")\",\n q2signs[0] + q2cstr[0],\n q2signs[1] + q2cstr[2] + q2v[0]\n ] \n ][q2idx]", "description": "

for display in the advice

", "templateType": "anything", "can_override": false}, "te": {"name": "te", "group": "question 2", "definition": "[expression(terms[0]),\n expression(terms[1]),\n expression(terms[2]),\n expression(terms[3]),\n simplify(expression(\n \"(\"+string(expression(terms[2]))+\")*(\"+string(expression(terms[1]))+\")\"\n ),[\"expandBrackets\",\"basic\",\"unitFactor\",\"unitPower\",\"zeroFactor\",\n \"zeroTerm\",\"zeroPower\",\"collectNumbers\",\"constantsFirst\",\n \"cancelFactors\"]),\n simplify(expression(\n \"(\"+string(expression(terms[3]))+\")*(\"+string(expression(terms[1]))+\")\"\n ),[\"expandBrackets\",\"basic\",\"unitFactor\",\"unitPower\",\"zeroFactor\",\n \"zeroTerm\",\"zeroPower\",\"collectNumbers\",\"constantsFirst\",\n \"cancelFactors\"]),\n \n ]", "description": "

the terms, done as expressions, for display in the advice.

", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["alphabet"], "variable_groups": [{"name": "question 2", "variables": ["q2idx", "q2signs", "q2c", "q2cstr", "q2v", "q2exprs", "q2expr", "q2ans", "terms", "te"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "jme", "useCustomName": true, "customName": "Exercise 2", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Remove the brackets from $\\var{q2expr}$ and simplify where possible.

", "answer": "{q2ans}", "showPreview": true, "checkingType": "absdiff", "checkingAccuracy": 0.001, "failureRate": 1, "vsetRangePoints": 5, "vsetRange": [0, 1], "checkVariableNames": true, "singleLetterVariables": true, "allowUnknownFunctions": true, "implicitFunctionComposition": false, "caseSensitive": false, "notallowed": {"strings": ["(", ")"], "showStrings": false, "partialCredit": 0, "message": ""}, "mustmatchpattern": {"pattern": "m_associative(\n m_commutative(\n (((`+-$n`?)*$v^2 `| -$v^2 `| (`+-$n`?)*$v*$v `| -$v*$v) +\n ( (`+-$n`?*$v `| -$v) )`? + (`+-$n)`?)\n `|\n (((-$v*$v `|(`+-$n`?)* $v*$v) + \n (((`+-$n)`?*$v;a) `| (-$v;a) ) + \n (((`+-$n)`?*$v;b) `| (-$v;b) ) + \n (`+-$n)`?)`where(a<>b))\n )\n)", "partialCredit": "50", "message": "You need to remove all brackets and fully simplify the answer", "nameToCompare": ""}, "valuegenerators": []}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "contributors": [{"name": "Merryn Horrocks", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/4052/"}]}]}], "contributors": [{"name": "Merryn Horrocks", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/4052/"}]}