function Generate($level) { $ppl = rand(20, 40); $rounds = rand(round($ppl / 2), round($ppl * 4 / 5)); $default = rand(3, 7) * 50; $extra = rand(5, 9); $total = $ppl - 1; $wins = rand(0, $total); // // Original exercise // $ppl = 31; // $rounds = 21; // $default = 250; // $extra = 7; // $total = $ppl-1; // $wins = 25; $wins = $wins == $rounds ? $wins + pow(-1, rand(0, 1)) : $wins; $defeats = $total - $wins; $points = $default + ($wins - $rounds) * $extra; $diff = $wins - $rounds; $question = 'Egy öttusaversenyen $' . $ppl . '$ résztvevő indult. A vívás az első szám, ahol mindenki mindenkivel egyszer mérkőzik meg. Aki $' . $rounds . '$ győzelmet arat, az $' . $default . '$ pontot kap. Aki ennél több győzelmet arat, az minden egyes további győzelemért $' . $extra . '$ pontot kap ' . The($default) . ' $' . $default . '$ ponton felül. Aki ennél kevesebbszer győz, attól annyiszor vonnak le $' . $extra . '$ pontot ' . The($default) . ' $' . $default . '$-' . From($default) . ', ahány győzelem hiányzik ' . The($rounds) . ' $' . $rounds . '$-' . To($rounds) . '. (A mérkőzések nem végződhetnek döntetlenre.) '; $type = 'int'; $question .= 'Hány pontot kapott a vívás során Péter, akinek $' . $defeats . '$ veresége volt?'; $correct = $points; $solution = '$' . $correct . '$'; $total = $ppl - 1; $diff = $wins - $rounds; if ($diff > 0) { $page[] = 'Mivel mindenki mindenkivel vívott, ezért Péternek összesen $' . $ppl . '-1=' . $total . '$ mérkőzése volt.'; $page[] = 'Péter $' . $total . '$ mérkőzésből $' . $defeats . '$-' . Dativ($defeats) . ' vesztett el, azaz a többi $' . $total . '-' . $defeats . '=' . $wins . '$ mérkőzést megnyerte.'; $page[] = 'Mivel Péter legalább $' . $rounds . '$ mérkőzést nyert, ezért kap $' . $default . '$ pontot.'; $page[] = 'Az előírt $' . $rounds . '$ mérkőzésen túl további $' . $wins . '-' . $rounds . '=' . $diff . '$ alkalommal nyert, ami további $' . $diff . '\\cdot' . $extra . '=' . strval($diff * $extra) . '$ pontot jelent.'; $page[] = 'Tehát Péter összesen $' . $default . '+' . strval($diff * $extra) . '=$ <span class="label label-success">$' . $correct . '$</span> pontot kapott.'; $hints[] = $page; } else { $diff *= -1; $page[] = 'Mivel mindenki mindenkivel vívott, ezért Péternek összesen $' . $ppl . '-1=' . $total . '$ mérkőzése volt.'; $page[] = 'Péter győztes meccseinek száma $' . $rounds . '$ helyett mindössze $' . $wins . '$ volt, ami $' . $diff . '$-' . With($diff) . ' kevesebb.'; $page[] = 'Ezért a $' . $default . '$ pontnál $' . $diff . '\\cdot' . $extra . '=' . strval($diff * $extra) . '$-' . By($diff * $extra) . ' kevesebb pontot kap.'; $page[] = 'Tehát Péter összesen $' . $default . '-' . strval($diff * $extra) . '=$ <span class="label label-success">$' . $correct . '$</span> pontot kapott.'; $hints[] = $page; } return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'type' => $type, 'hints' => $hints); }
function Generate($level) { $d = rand(-2 * $level, 2 * $level); $a0 = rand(-2 * $level, 2 * $level); // // Original exercise // $d = -7; // $a0 = 32; $a1 = $a0 + $d; $a2 = $a1 + $d; $question = 'Egy számtani sorozat három egymást követő tagja ebben a sorrendben $' . $a0 . ';x$ és $' . $a2 . '$. '; $question .= 'Határozza meg a sorozat differenciáját!'; $correct = $d; $solution = '$' . $correct . '$'; $page[] = 'A számtani sorozatban minden tagot úgy tudunk kiszámolni, hogy hozzáadunk $\\textcolor{blue}{d}$-t (a <i>differenciát</i>) az előző számhoz:$$a_1\\xrightarrow{+\\textcolor{blue}{d}}a_2\\xrightarrow{+\\textcolor{blue}{d}}a_3$$'; $page[] = 'Tehát ha az első szám $' . $a0 . '$, akkor' . '$$\\begin{eqnarray}a_1&=&' . $a0 . '\\\\' . ' a_2&=&a_1+\\textcolor{blue}{d}=' . $a0 . '+\\textcolor{blue}{d}=x \\\\ ' . ' a_3&=&a_2+\\textcolor{blue}{d}=a_1+2\\cdot \\textcolor{blue}{d}=' . $a2 . '\\end{eqnarray}$$'; $page[] = 'Látjuk, hogy ha ' . The($a2) . ' $' . $a2 . '$-' . From($a2) . ' kivonunk $' . $a0 . '$-' . Dativ($a0) . ', a differencia $2$-szeresét kapjuk:$$2\\cdot\\textcolor{blue}{d}=' . $a2 . '-' . ($a0 < 0 ? '(' . $a0 . ')' : $a0) . '=' . ($a0 < 0 ? $a2 . '+' . abs($a0) . '=' : '') . strval(2 * $d) . '$$'; $page[] = 'Ha ezt a különbséget elosztjuk $2$-vel, megkapjuk a $\\textcolor{blue}{d}$ értékét:' . '$$\\textcolor{blue}{d}=' . strval(2 * $d) . ':2=' . $d . '$$'; $page[] = 'Tehát a $d$ értéke <span class="label label-success">$' . $d . '$</span>.'; $hints[] = $page; return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints); }
function Generate($level) { $ppl = rand(20, 40); $rounds = rand(round($ppl / 2), round($ppl * 4 / 5)); $default = rand(3, 7) * 50; $extra = rand(5, 9); $total = $ppl - 1; $wins = rand(0, $total); // // Original exercise // $ppl = 31; // $rounds = 21; // $default = 250; // $extra = 7; // $total = $ppl-1; // $wins = 16; $wins = $wins == $rounds ? $wins + pow(-1, rand(0, 1)) : $wins; $defeats = $total - $wins; $points = $default + ($wins - $rounds) * $extra; $diff = $wins - $rounds; $question = 'Egy öttusaversenyen $' . $ppl . '$ résztvevő indult. A vívás az első szám, ahol mindenki mindenkivel egyszer mérkőzik meg. Aki $' . $rounds . '$ győzelmet arat, az $' . $default . '$ pontot kap. Aki ennél több győzelmet arat, az minden egyes további győzelemért $' . $extra . '$ pontot kap ' . The($default) . ' $' . $default . '$ ponton felül. Aki ennél kevesebbszer győz, attól annyiszor vonnak le $' . $extra . '$ pontot ' . The($default) . ' $' . $default . '$-' . From($default) . ', ahány győzelem hiányzik ' . The($rounds) . ' $' . $rounds . '$-' . To($rounds) . '. (A mérkőzések nem végződhetnek döntetlenre.) '; $type = 'int'; $question .= 'Hány győzelme volt Bencének, aki $' . $points . '$ pontot szerzett?'; $correct = $wins; $solution = '$' . $correct . '$'; if ($diff > 0) { $page[] = 'Bence $' . $default . '$ pontnál többet szerzett, ami azt jelenti, hogy legalább $' . $rounds . '$ mérkőzést nyert.'; $page[] = 'Számoljuk ki, Bence pontjainak száma mennyivel több, mint $' . $default . '$:$$' . $points . '-' . $default . '=' . strval($diff * $extra) . '$$'; $page[] = 'Ha ezt a számot elosztjuk $' . $extra . '$-' . With($extra) . ', megkapjuk, hogy hány további versenyt nyert Bence:$$' . strval($diff * $extra) . ':' . $extra . '=' . $diff . '$$'; $page[] = 'Tehát Bencének összesen $' . $rounds . '+' . $diff . '=$ <span class="label label-success">$' . $correct . '$</span> győzelme volt.'; $hints[] = $page; } else { $diff *= -1; $page[] = 'Bence $' . $default . '$ pontnál kevesebbet szerzett, ami azt jelenti, hogy kevesebb, mint $' . $rounds . '$ mérkőzést nyert.'; $page[] = 'Számoljuk ki, Bence pontjainak száma mennyivel kevesebb, mint $' . $default . '$:$$' . $default . '-' . $points . '=' . strval($diff * $extra) . '$$'; $page[] = 'Ha ezt a számot elosztjuk $' . $extra . '$-' . With($extra) . ', megkapjuk, hogy hány további versenyt vesztett el Bence:$$' . strval($diff * $extra) . ':' . $extra . '=' . $diff . '$$'; $page[] = 'Tehát Bencének összesen $' . $rounds . '-' . $diff . '=$ <span class="label label-success">$' . $correct . '$</span> győzelme volt.'; $hints[] = $page; } return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'type' => $type, 'hints' => $hints); }