// Numbas version: exam_results_page_options {"name": "Euklidischer Algorithmus in $\\mathbb Q[X]$", "extensions": ["polynomials"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "Euklidischer Algorithmus in $\\mathbb Q[X]$", "tags": [], "metadata": {"description": "

The euclidean algorithm in the polynomial ring $\\mathbb Q[x]$.

", "licence": "Creative Commons Attribution 4.0 International"}, "statement": "

Der Euklidische Algorithmus im Polynomring $\\mathbb Q[x]$.

", "advice": "

Die Aufgabe kann mit dem euklidischen Algorithmus gelöst werden (auf der rechten Seite sind jeweils \"sicherheitshalber\" alle Polynome eingeklammert, auch wenn sie nur aus einem Summanden bestehen - das lässt sich an dieser Stelle im Programm nicht ganz leicht umgehen):

\n

\\[ \\var{latex(advice_arr(a,b))} \\]

\n

Also ist $\\var{g}$ der gesuchte größte gemeinsame Teiler. Um eine Darstellung in der Form $(\\var{a})p+(\\var{b})q$ zu finden, kann man diese Gleichungskette \"von hinten beginnend auflösen\".

", "rulesets": {}, "extensions": ["polynomials"], "variables": {"g": {"name": "g", "group": "Ungrouped variables", "definition": "polynomial(x, repeat(random(-3..3), random(1..2)) + [1])", "description": "

The gcd that is to be computed.

", "templateType": "anything"}, "k": {"name": "k", "group": "Ungrouped variables", "definition": "random(2,2,3)", "description": "

Number of steps (i.e., of divisions with remainder that need to be carried out) in the euclidean algorithm.

", "templateType": "anything"}, "a, b, z, y": {"name": "a, b, z, y", "group": "Ungrouped variables", "definition": "euclidean_algorithm(k, g, random_multiplier()*g, polynomial(x, [1]), polynomial(x, []))", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "g <> polynomial(x, []) and a[degree(a)] = 1 and b[degree(b)] = 1", "maxRuns": 100}, "ungrouped_variables": ["a, b, z, y", "g", "k"], "variable_groups": [], "functions": {"random_multiplier": {"parameters": [], "type": "polynomial", "language": "jme", "definition": "polynomial(x, repeat(random(-2..2), random(1,1,2)) + [1])"}, "euclidean_algorithm": {"parameters": [["steps", "number"], ["a", "polynomial"], ["b", "polynomial"], ["z", "polynomial"], ["y", "polynomial"]], "type": "list", "language": "jme", "definition": "if(steps=0,\n [a, b, z, y], // gcd(a,b) is preserved throughout the algorithm, and xa+yb = gcd(a, b)\n let(r, random_multiplier(), euclidean_algorithm(steps-1, b, r*b+a, y-r*z, z))\n)"}, "advice": {"parameters": [["a", "polynomial"], ["b", "polynomial"]], "type": "string", "language": "jme", "definition": "if(degree(a) < degree(b), advice(b, a),\n if(remainder(a, b)=polynomial(x, []), \"{ltx(a)} \\& = ({ltx(quotient(a, b))})\\\\cdot ({ltx(b)})\",\n \"{ltx(a)} \\& = ({ltx(quotient(a, b))})\\\\cdot ({ltx(b)}) + ({ltx(remainder(a,b))})\\\\\\\\ \" + advice(b, remainder(a,b)))\n)"}, "advice_arr": {"parameters": [["a", "polynomial"], ["b", "polynomial"]], "type": "string", "language": "jme", "definition": "\"\\\\begin\\{array\\}\\{rl\\}\" + advice(a,b) + \"\\\\end\\{array\\}\""}, "ltx": {"parameters": [["p", "polynomial"]], "type": "string", "language": "javascript", "definition": "return p.toLaTeX();"}}, "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": "

Berechnen Sie den normierten größten gemeinsamen Teiler von $f = \\var{a}$ und $g=\\var{b}$ in $\\mathbb Q[X]$.

\n

Der normierte ggT von $\\var{a}$ und $\\var{b}$ ist [[0]].

", "gaps": [{"type": "jme", "useCustomName": false, "customName": "", "marks": "10", "scripts": {}, "customMarkingAlgorithm": "studentPolynomial (The student's answer, interpreted as a polynomial):\n assert(trim(studentAnswer)<>\"\",\n warn(translate(\"part.marking.nothing entered\"));\n fail(translate(\"part.marking.nothing entered\"))\n );\n try(\n polynomial(studentAnswer)\n , message,\n warn(translate(\"part.jme.answer invalid\",[\"message\":message]));\n fail(translate(\"part.jme.answer invalid\",[\"message\":message]))\n )\n\nmark:\n apply(studentpolynomial);\n correctif(studentPolynomial=g)", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{g}", "showPreview": true, "checkingType": "absdiff", "checkingAccuracy": 0.001, "failureRate": 1, "vsetRangePoints": 5, "vsetRange": [0, 1], "checkVariableNames": false, "singleLetterVariables": false, "allowUnknownFunctions": true, "implicitFunctionComposition": false, "valuegenerators": []}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "mark:\n assert(all_valid or not settings[\"sortAnswers\"], fail(translate(\"question.can not submit\")));\n apply(answers);\n correctif(a*answers[0] + b*answers[1] = g)", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Geben Sie eine Darstellung des in a) berechneten ggT von $\\var{a}$ und $\\var{b}$ in der Form $(\\var{a})p+(\\var{b})q$ mit $p,q\\in \\mathbb Q[X]$, an.

\n

$p=$ [[0]]

\n

$q=$ [[1]]

", "gaps": [{"type": "jme", "useCustomName": false, "customName": "", "marks": "7", "scripts": {}, "customMarkingAlgorithm": "studentPolynomial (The student's answer, interpreted as a polynomial):\n assert(trim(studentAnswer)<>\"\",\n warn(translate(\"part.marking.nothing entered\"));\n fail(translate(\"part.marking.nothing entered\"))\n );\n try(\n polynomial(studentAnswer)\n , message,\n warn(translate(\"part.jme.answer invalid\",[\"message\":message]));\n fail(translate(\"part.jme.answer invalid\",[\"message\":message]))\n )\n\ninterpreted_answer:\n studentPolynomial", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": false, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{z}", "showPreview": true, "checkingType": "absdiff", "checkingAccuracy": 0.001, "failureRate": 1, "vsetRangePoints": 5, "vsetRange": [0, 1], "checkVariableNames": false, "singleLetterVariables": false, "allowUnknownFunctions": true, "implicitFunctionComposition": false, "valuegenerators": []}, {"type": "jme", "useCustomName": false, "customName": "", "marks": "7", "scripts": {}, "customMarkingAlgorithm": "studentPolynomial (The student's answer, interpreted as a polynomial):\n assert(trim(studentAnswer)<>\"\",\n warn(translate(\"part.marking.nothing entered\"));\n fail(translate(\"part.marking.nothing entered\"))\n );\n try(\n polynomial(studentAnswer)\n , message,\n warn(translate(\"part.jme.answer invalid\",[\"message\":message]));\n fail(translate(\"part.jme.answer invalid\",[\"message\":message]))\n )\n\ninterpreted_answer:\n studentPolynomial", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": false, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{y}", "showPreview": true, "checkingType": "absdiff", "checkingAccuracy": 0.001, "failureRate": 1, "vsetRangePoints": 5, "vsetRange": [0, 1], "checkVariableNames": false, "singleLetterVariables": false, "allowUnknownFunctions": true, "implicitFunctionComposition": false, "valuegenerators": []}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "contributors": [{"name": "Ulrich G\u00f6rtz", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/7603/"}]}]}], "contributors": [{"name": "Ulrich G\u00f6rtz", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/7603/"}]}