function Generate($level)
 {
     $q_no = rand(5, 7);
     $opts_no = rand(2, 4);
     $ppl = rand(7, 14);
     $freq = $this->Frequencies($q_no, $opts_no, $ppl);
     $freq_max = array_map('max', $freq);
     $points = array_sum($freq_max) + rand(0, 1);
     // // Original exercise
     // $q_no = 6;
     // $opts_no = 3;
     // $ppl = 10;
     // $freq = [
     // 	0 => [1,4,5],
     // 	1 => [6,3,1],
     // 	2 => [4,0,6],
     // 	3 => [7,2,1],
     // 	4 => [6,3,1],
     // 	5 => [1,6,3]
     // ];
     // $freq_max = array_map('max', $freq);
     // $points = 35;
     $opts_text = range(chr(65), chr(65 + $opts_no - 1));
     $question = 'Egy ' . NumText($q_no) . 'kérdéses tesztben minden kérdésnél a megadott ' . NumText($opts_no) . ' lehetőség (' . StringArray($opts_text, 'és') . ') közül kellett kiválasztani a helyes választ. A tesztet ' . NumText($ppl) . ' diák írta meg. Az alábbi diagram az egyes feladatokra adott válaszok eloszlását mutatja. A teszt értékelésekor minden helyes válaszra $1$ pont, helytelen válaszra pedig $0$ pont jár. Tudjuk, hogy a ' . NumText($ppl) . ' diák összesen $' . $points . '$ pontot szerzett. Igaz-e, hogy minden kérdésre az a jó válasz, amit a legtöbben jelöltek be?' . $this->Diagram($freq, $q_no, $opts_no);
     $options = ['Igaz', 'Hamis'];
     $correct = $freq_max == $points ? 0 : 1;
     $solution = $options[$correct];
     for ($i = 0; $i < $q_no; $i++) {
         // Define most frequent options
         $max = [];
         for ($j = 0; $j < $opts_no; $j++) {
             if ($freq[$i][$j] == $freq_max[$i]) {
                 $max[] = $opts_text[$j];
             }
         }
         $max_text = count($max) == 1 ? $max[0] : StringArray($max, 'és');
         $page[] = The($i + 1, TRUE) . ' ' . OrderText($i + 1) . ' kérdésre legtöbben ' . ($max[0] == 'A' ? 'az' : 'a') . ' ' . $max_text . ' választ jelölték meg, összesen $' . $freq_max[$i] . '$-' . On2($freq_max[$i]) . '.';
     }
     if (array_sum($freq_max) == $points) {
         $page[] = 'Ezeknek a számoknak az összege $' . implode('+', $freq_max) . '=' . array_sum($freq_max) . '$, ami pont ugyanannyi, mint amennyi a feladatban szerepel, ezért az állítás <span class="label label-success">igaz</span>.';
     } else {
         $page[] = 'Ha igaz lenne az állítás, akkor ezeknek a számoknak az összege $' . $points . '$ lenne. Viszont az összeg $' . implode('+', $freq_max) . '=' . array_sum($freq_max) . '$, ezért az állítás <span class="label label-danger">hamis</span>.';
     }
     $hints[] = $page;
     return array('question' => $question, 'options' => $options, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints);
 }
 function Generate($level)
 {
     if ($level <= 3) {
         $num1 = pow(2, rand(2, 3));
         $num2 = pow(2, rand(4, 5));
     } elseif ($level <= 6) {
         $num1 = pow(2, rand(1, 3)) * pow(3, rand(0, 1));
         $num2 = pow(2, rand(1, 4)) * pow(3, rand(2, 3));
     } else {
         $num1 = pow(2, rand(1, 3)) * pow(3, rand(0, 3)) * pow(5, rand(0, 1));
         $num2 = pow(2, rand(1, 4)) * pow(3, rand(0, 3)) * pow(5, rand(2, 3));
     }
     $gcd = gcd($num1, $num2);
     $num3 = rand(1, 2) == 1 ? $gcd : $gcd / 2;
     // // Original exercise
     // $num1 = 48;
     // $num2 = 120;
     // $num3 = 12;
     // $gcd = gcd($num1, $num2);
     $correct = $num3 == $gcd ? 0 : 1;
     $options = ['Igaz', 'Hamis'];
     $solution = $options[$correct];
     $question = 'Adja meg az alábbi állítás logikai értékét (igaz vagy hamis)!<br />' . The($num1, TRUE) . ' $' . $num1 . '$ és ' . The($num2) . ' $' . $num2 . '$ legnagyobb közös osztója ' . The($num3) . ' $' . $num3 . '$.';
     $page[] = '<div class="alert alert-info"><strong>Közös osztó:</strong> az a szám, amivel mind a két szám osztható.</div>';
     $page[] = '<div class="alert alert-info"><strong>Legnagyobb közös osztó:</strong> a közös osztók közül a legnagyobb. Az $a$ és $b$ számok legnagyobb közös osztóját $(a;b)$-vel jelöljük.</div>';
     $page[] = 'A legnagyobb közös osztó kiszámításához először írjuk fel mindkét szám prímtényezős felbontását!';
     $hints[] = $page;
     $hints[][] = 'Az első szám prímtényezős felbontása: $' . $num1 . '=' . implode('\\cdot', $this->CanonicForm($num1)) . '$, ugyanis:' . $this->Factorization($num1);
     $hints[][] = 'A második szám prímtényezős felbontása: $' . $num2 . '=' . implode('\\cdot', $this->CanonicForm($num2)) . '$, ugyanis:' . $this->Factorization($num2);
     $page = [];
     $page[] = 'Most gyűjtsünk össze a közös prímtényezőket (ha mindkét számban előfordul, akkor a kisebb kitevőt nézzük): $$(' . $num1 . ';' . $num2 . ')=' . implode('\\cdot', $this->CanonicForm($gcd)) . '=' . $gcd . '$$';
     $page[] = 'Mivel a legnagyobb közös osztó ' . ($gcd == $num3 ? 'megegyezik' : 'nem egyezik meg') . ' ' . The($num3) . ' $' . $num3 . '$-' . With($num3) . ', ezért az állítás <span class="label label-success">' . strtolower($solution) . '</span>.';
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'options' => $options, 'hints' => $hints);
 }
Beispiel #3
21
 function Generate($level)
 {
     if ($level <= 3) {
         $numbers = range(1, 5);
         $set_size = rand(3, 4);
         $subset_size = 2;
     } elseif ($level <= 6) {
         $numbers = range(1, 10);
         $set_size = rand(4, 6);
         $subset_size = rand(2, 3);
     } else {
         $numbers = range(1, 20);
         $set_size = rand(7, 10);
         $subset_size = rand(3, 4);
     }
     $set = $this->Set($numbers, $set_size);
     $subset = NumText($subset_size);
     // // Original exercise
     // $set_size = 5;
     // $set = [2,3,5,7,11];
     // $subset = 'kettő';
     $question = 'Hány darab ' . ($subset == 'kettő' ? 'két' : $subset) . 'elemű részhalmaza van ' . The($set[0]) . ' $\\{' . implode(";", $set) . '\\}$ halmaznak?';
     $correct = binomial_coeff(count($set), $subset_size);
     $hints = $this->Hints($set_size, $subset_size);
     $solution = '$' . $correct . '$';
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints);
 }
Beispiel #4
18
 function Hints($num, $option1, $option2, $option3, $divisor)
 {
     $first = $option2 == 'pozitív' ? 1 : 0;
     $last = $option1 == 'kisebb' ? $num - 1 : $num;
     $page[] = 'Először nézzük meg, hogy hány $' . $num . '$-' . By($num) . ' ' . $option1 . ' ' . $option2 . ' ' . 'szám van!';
     $page[] = 'Mivel ' . $option2 . ' számokat nézünk, a számolást $' . $first . '$-' . By($first) . ' kezdjük.';
     $page[] = 'Továbbá, $' . $num . '$-' . By($num) . ' ' . $option1 . ' számokat nézünk, azaz az utolsó szám ' . The($last) . ' $' . $last . '$ lesz:';
     $nums = '';
     for ($i = $first; $i <= $last; $i++) {
         $nums .= '$' . $i . ($i == $last ? '' : ';') . '$';
     }
     $page[] = '<div class="text-center">' . $nums . '</div>';
     $hints[] = $page;
     $page = [];
     $page[] = 'Most ebből válasszuk ki a ' . $option3 . ' számokat!';
     $nums = '';
     $total = 0;
     for ($i = $first; $i <= $last; $i++) {
         if ($option3 == 'páros' && $i % 2 == 0 || $option3 == 'páratlan' && $i % 2 == 1) {
             $nums .= '$\\textcolor{blue}{\\fbox{' . $i . '}}' . ($i == $last ? '' : ';') . '$';
             $total++;
         } else {
             $nums .= '$' . $i . ($i == $last ? '' : ';') . '$';
         }
     }
     $page[] = '<div class="text-center">' . $nums . '</div>';
     $page[] = 'Ez összesen $' . $total . '$ szám; ez lesz az <b>összes</b> esetek száma.';
     $hints[] = $page;
     $page = [];
     $page[] = 'Most nézzük meg, hogy a kiválasztott számok közül hány osztható $' . $divisor . '$-' . With($divisor) . '!';
     $nums = '';
     $good = 0;
     for ($i = $first; $i <= $last; $i++) {
         if ($option3 == 'páros' && $i % 2 == 0 || $option3 == 'páratlan' && $i % 2 == 1) {
             if ($i % $divisor == 0) {
                 $nums .= '$\\textcolor{red}{\\fbox{' . $i . '}}' . ($i == $last ? '' : ';') . '$';
                 $good++;
             } else {
                 $nums .= '$\\textcolor{blue}{\\fbox{' . $i . '}}' . ($i == $last ? '' : ';') . '$';
             }
         } else {
             $nums .= '$' . $i . ($i == $last ? '' : ';') . '$';
         }
     }
     $page[] = '<div class="text-center">' . $nums . '</div>';
     $page[] = 'Ez összesen $' . $good . '$ szám; ez lesz a <b>kedvező</b> esetek száma.';
     $hints[] = $page;
     $page = [];
     $page[] = 'A valószínűséget úgy kapjuk meg, ha a <b>kedvező</b> esetek számát elosztjuk' . ' az <b>összes</b> esetek számával.';
     $page[] = 'Tehát a keresett valószínűség <span class="label label-success">$\\frac{' . $good . '}{' . $total . '}$</span>.';
     $hints[] = $page;
     return array($hints, $good, $total);
 }
Beispiel #5
17
 function Generate($level)
 {
     $a1 = rand(-10 * $level, 10 * $level);
     $a3 = rand(-10 * $level, 10 * $level);
     $a3 = abs($a1 - $a3) < 6 ? $a1 + 6 : $a3;
     $a2 = $a1 < $a3 ? rand($a1 + 1, $a3 - 1) : rand($a3 + 1, $a1 - 1);
     // // Original exercise
     // $a1 = 32;
     // $a2 = 28;
     // $a3 = 18;
     $sum = $a1 + $a2 + $a3;
     $a2 = $a2 + 3 - $sum % 3 >= max($a1, $a3) ? $a2 - $sum % 3 : $a2 + 3 - $sum % 3;
     $avg = ($a1 + $a2 + $a3) / 3;
     $diff = $avg - $a2;
     $question = The($a1, TRUE) . ' $' . $a1 . ';x$ és $' . $a3 . '$ számokról tudjuk, hogy a három szám átlaga $' . abs($diff) . '$-' . With(abs($diff)) . ' ' . ($diff > 0 ? 'nagyobb' : 'kisebb') . ', mint a mediánja, továbbá $' . $a1 . ($a1 < $a3 ? '\\lt ' : '\\gt ') . 'x' . ($a1 < $a3 ? '\\lt ' : '\\gt ') . $a3 . '$. Határozza meg az $x$ értékét!';
     $correct = $a2;
     $solution = '$' . $correct . '$';
     $type = 'int';
     $page[] = 'Írjuk fel az átlagot ($A$):$$' . ($a3 > 0 ? 'A=\\frac{' . $a1 . '+x+' . $a3 . '}{3}' : '\\begin{eqnarray}A&=&\\frac{' . $a1 . '+x+(' . $a3 . ')}{3}\\\\ &=&\\frac{' . $a1 . '+x' . $a3 . '}{3}\\end{eqnarray}') . '$$';
     $page[] = 'Három szám közül a medián ($M$) a nagyság szerinti középső, vagyis $M=x$.';
     $page[] = 'A feladat szerint az átlag $' . abs($diff) . '$-' . With(abs($diff)) . ' ' . ($diff > 0 ? 'nagyobb' : 'kisebb') . ', mint a medián, azaz:$$M=A' . ($diff > 0 ? '-' : '+') . abs($diff) . '$$';
     $hints[] = $page;
     $page = [];
     $page[] = 'Helyettesítsük be $M$ és $A$ értékét, és fejezzük ki $x$-et:$$x=\\frac{' . $a1 . '+x' . ($a3 > 0 ? '+' : '') . $a3 . '}{3}' . ($diff > 0 ? '-' : '+') . abs($diff) . '$$';
     $page[] = 'Szorozzuk meg mindkét oldalt $3$-mal:$$3\\cdot x=(' . $a1 . '+x' . ($a3 > 0 ? '+' : '') . $a3 . ')' . ($diff > 0 ? '-' : '+') . abs(3 * $diff) . '$$';
     $page[] = 'Elhagyhatjuk a zárójelet:$$3\\cdot x=' . $a1 . '+x' . ($a3 > 0 ? '+' : '') . $a3 . ($diff > 0 ? '-' : '+') . abs(3 * $diff) . '$$';
     $page[] = 'Vonjunk ki mindkét oldalból $x$-et:$$2\\cdot x=' . $a1 . ($a3 > 0 ? '+' : '') . $a3 . ($diff > 0 ? '-' : '+') . abs(3 * $diff) . '$$';
     $page[] = 'Végezzük el a műveleteket a jobb oldalon:$$2\\cdot x=' . strval($a1 + $a3 - 3 * $diff) . '$$';
     $page[] = 'Osszuk el mindkét oldalt $2$-vel:$$x=\\frac{' . strval($a1 + $a3 - 3 * $diff) . '}{2}=' . strval(($a1 + $a3 - 3 * $diff) / 2) . '$$';
     $page[] = 'Tehát a megoldás <span class="label label-success">$' . $a2 . '$</span>.';
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints);
 }
Beispiel #6
17
 function Hints($unit, $vat)
 {
     $percent = 100 + $vat;
     $price = $percent * $unit;
     $vat_value = $vat * $unit;
     $page[] = 'A nadrág ára két részből tevődik össze: a nettó árból (ez a $100\\%$), és az áfából (ez ' . The($vat) . ' $' . $vat . '\\%$).';
     $page[] = 'Ez összesen $' . $percent . '\\%$, aminek az értéke $' . $price . '\\,\\text{Ft}$:$$' . $percent . '\\%\\quad\\to\\quad' . $price . '\\,\\text{Ft}$$';
     $page[] = 'Számoljuk ki az $1\\%$ értékét! Ehhez el kell osztani ' . The($price) . ' $' . $price . '$-' . Dativ($price) . ' $' . $percent . '$-' . With($percent) . ': $' . $price . ':' . $percent . '=' . $unit . '$. Azaz:$$1\\%\\quad\\to\\quad' . $unit . '\\,\\text{Ft}$$';
     $page[] = 'Az áfa $' . $vat . '\\%$. Ennek az értékét úgy tudjuk kiszámolni, hogy ' . The($unit) . ' $' . $unit . '$-' . Dativ($unit) . ' megszorozzuk $' . $vat . '$-' . With($vat) . ': $' . $unit . '\\cdot' . $vat . '=' . $vat_value . '$. Azaz$$' . $vat . '\\%\\quad\\to\\quad' . $vat_value . '\\,\\text{Ft}$$';
     $page[] = 'Tehát a nadrág <span class="label label-success">$' . $vat_value . '$</span>$\\,\\text{Ft}$ áfát tartalmaz.';
     $hints[] = $page;
     return $hints;
 }
Beispiel #7
15
 function Generate($level)
 {
     if ($level <= 3) {
         $max = rand(4, 5);
         $pull = rand(2, 3);
     } elseif ($level <= 6) {
         $max = rand(6, 8);
         $pull = rand(3, 5);
     } else {
         $max = rand(9, 12);
         $pull = rand(4, 7);
     }
     $pull_text = [2 => 'kettőt', 3 => 'hármat', 4 => 'négyet', 5 => 'ötöt', 6 => 'hatot', 7 => 'hetet'];
     $numbers = range(1, $max);
     $chosen = $numbers;
     shuffle($chosen);
     $chosen = array_slice($chosen, 0, $pull);
     sort($chosen);
     // // Original exercise
     // $max = 5;
     // $pull = 3;
     // $numbers = [1,2,3,4,5];
     // $chosen = [2,3,5];
     $question = 'Az osztály lottót szervez, melyben az $' . implode(',', $numbers) . '$ számok közül húznak ki ' . $pull_text[$pull] . '. Tamás ' . The($chosen[0]) . ' $' . implode(',', $chosen) . '$ számokat jelöli be a szelvényen. Számítsa ki annak a valószínűségét, hogy Tamásnak telitalálata lesz!';
     $all = binomial_coeff($max, $pull);
     $page[] = 'Az összes lehetséges húzás száma:$${' . $max . '\\choose ' . $pull . '}=' . $all . '$$';
     $page[] = '<b>Megjegyzés</b>: az eredményt számológéppel a <b>nCr</b> gombbal lehet kiszámolni:<br /><div class="text-center"><kbd>' . $max . '</kbd> <kbd>Shift</kbd> <kbd>nCr</kbd> <kbd>' . $pull . '</kbd> <kbd>=</kbd></div>';
     $page[] = 'A kedvező esetek száma $1$.';
     $page[] = 'A keresett valószínűség a kedvező és összes eset hányadosa, tehát <span class="label label-success">$\\frac{1}{' . $all . '}$</span>.';
     $hints[] = $page;
     $correct = array(1, $all);
     $solution = '$\\frac{1}{' . $all . '}$';
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints, 'type' => 'fraction');
 }
Beispiel #8
15
 function Generate($level)
 {
     $type = rand(2, 5);
     // number of candle types
     $mult = rand(2, 4);
     // number of each type
     $candles = $type * $mult;
     // total number of candles
     $days = $type;
     // number of pulls
     $colors = ['piros', 'sárga', 'kék', 'zöld', 'lila'];
     shuffle($colors);
     // // Original exercise
     // $type = 3;
     // $mult = 2;
     // $colors = ['piros', 'lila', 'narancssárga'];
     // $candles = $type*$mult;
     // $days = $type;
     $question = 'Zsófi a gyertyák öntéséhez ' . NumText($type) . ' különböző fajta „varázskanócot” használ. Mindegyik fajta „varázskanóc” fehér színű, de meggyújtáskor (a benne lévő anyagtól függően) az egyik fajta ' . $colors[0] . ', a másik ' . $colors[1] . ($type >= 3 ? ', a harmadik ' . $colors[2] : '') . ($type >= 4 ? ', a negyedik ' . $colors[3] : '') . ($type >= 5 ? ', az ötödik ' . $colors[4] : '') . ' lánggal ég. Zsófi hétfőn egy dobozba tesz $' . $candles . '$ darab gyertyát, mind ' . The($type) . ' ' . NumText($type) . ' fajtából ' . NumText($mult) . '-' . NumText($mult) . ' darabot. Keddtől kezdve minden nap véletlenszerűen kivesz egy gyertyát a dobozból, és meggyújtja. Számítsa ki annak a valószínűségét, hogy Zsófi az első ' . NumText($days) . ' nap ' . NumText($days) . ' különböző színű lánggal égő gyertyát gyújt meg!';
     $total_options = range($candles, $candles - $days + 1);
     $total = fact($candles, $candles - $days + 1);
     $choices = array_fill(0, $days, $mult);
     $good = fact($type) * pow($mult, $days);
     $page[] = '(Ha az azonos színű lánggal égőket megkülönböztetjük egymástól, akkor) Zsófi összesen $' . implode('\\cdot', $total_options) . '=' . round2($total) . '$-féleképpen választhatja ki az első ' . NumText($days) . ' gyertyát. Ez lesz az <span class="label label-info">összes</span> esetek száma.';
     $page[] = 'A ' . NumText($type) . 'féle szín sorrendje $' . $type . '!=' . fact($type) . '$-féle lehet.';
     $page[] = 'Egy adott színsorrend esetén $' . implode('\\cdot', $choices) . '=' . pow($mult, $days) . '$ választási lehetőség van.';
     $page[] = 'Ezért a <span class="label label-info">kedvező</span> esetek száma $' . fact($type) . '\\cdot' . pow($mult, $days) . '=' . round2($good) . '$.';
     $page[] = 'A keresett valószínűség a kedvező és összes esetek hányadosa, azaz <span class="label label-success">$\\frac{' . round2($good) . '}{' . round2($total) . '}$</span>.';
     $hints[] = $page;
     $correct = [$good, $total];
     $solution = '$\\frac{' . $good . '}{' . $total . '}$';
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints, 'type' => 'fraction');
 }
Beispiel #9
15
 function Generate($level)
 {
     if ($level <= 3) {
         $questions = rand(2, 3);
     } elseif ($level <= 6) {
         $questions = rand(3, 4);
     } else {
         $questions = rand(4, 5);
     }
     $prize = rand($level, 2 * $level) * pow(10, $questions);
     $risk_factors = [10, 25, 50, 75, 100];
     $factor_no = rand(2, count($risk_factors));
     shuffle($risk_factors);
     $risk_factors = array_splice($risk_factors, 0, $factor_no);
     sort($risk_factors);
     // $questions 		= 5;
     // $prize 			= 40000;
     // $risk_factors	= [50, 75, 100];
     $question = 'Egy televíziós játékban $' . $questions . '$ kérdést tehet fel a játékvezető. A játék során a versenyző, ha az első kérdésre jól válaszol, $' . BigNum($prize) . '$ forintot nyer. Minden további kérdés esetén döntenie kell, hogy a játékban addig megszerzett pénzének ' . NumArray($risk_factors) . ' százalékát teszi-e fel. Ha jól válaszol, feltett pénzének kétszeresét kapja vissza, ha hibázik, abba kell hagynia a játékot, és a fel nem tett pénzét viheti haza. ';
     $option = rand(1, 4);
     if ($option == 1) {
         $question .= 'Mennyi pénzt visz haza az a játékos, aki mind az ' . NumText($questions) . ' feltett kérdésre jól válaszol, s bátran kockáztatva mindig a legnagyobb tétet teszi meg?';
         list($hints, $correct) = $this->Hints($questions, $risk_factors, $prize, $option);
     } elseif ($option == 2) {
         $question .= 'Az a játékos, aki mindig helyesen válaszol, de óvatos, és a ' . NumText($questions - 1) . ' utolsó fordulóban pénzének csak $' . min($risk_factors) . '\\%$-át teszi fel, hány forintot visz haza?';
         list($hints, $correct) = $this->Hints($questions, $risk_factors, $prize, $option);
     } elseif ($option == 3) {
         shuffle($risk_factors);
         $risk1 = $risk_factors[0];
         $risk2 = $risk_factors[1];
         if ($risk2 == 100) {
             list($risk1, $risk2) = [$risk2, $risk1];
         }
         $question .= 'A vetélkedő során az egyik versenyző az első ' . NumText($questions - 1) . ' kérdésre jól válaszolt. A második kérdésnél a pénzének $' . $risk1 . '\\%$-át, a ' . NumArray(range(3, $questions), 'és', '.') . ' kérdés esetén pénzének $' . $risk2 . '\\%$-át tette fel. Az $' . $questions . '.$ kérdésre sajnos rosszul válaszolt. Hány forintot vihetett haza ez a játékos?';
         list($hints, $correct) = $this->Hints($questions, $risk_factors, $prize, $option, $risk1, $risk2);
     } else {
         $question .= 'Egy versenyző mind ' . The($questions) . ' $' . $questions . '$ fordulóban jól válaszol, és közben minden fordulóban azonos eséllyel teszi meg a játékban megengedett lehetőségek valamelyikét. Mennyi annak a valószínűsége, hogy az elnyerhető maximális pénzt viheti haza?';
         $page[] = 'A játékos az első válasz után összesen $' . count($risk_factors) . '$-féle opció közül választhat.';
         $page[] = 'Akkor fogja hazavinni a legtöbb pénzt, ha minden kérdés után a pénze lehető legnagyobb részét, azaz $' . max($risk_factors) . '\\%$-át teszi fel.';
         for ($i = 1; $i <= $questions - 1; $i++) {
             $page[] = '<ul><li>Annak a valószínűsége, hogy ' . The($i) . ' ' . OrderText($i) . ' kérdés után ezt az opciót választja, $\\frac{1}{' . count($risk_factors) . '}$.</li></ul>';
         }
         $page[] = '(' . strtoupper(The($questions)) . ' ' . OrderText($questions) . ' kérdés után már nem kell tétet tenni, mert vége van a játéknak.)';
         $page[] = 'Ezért annak a valószínűsége, hogy a játékos az elnyerhető maximális pénzt viheti haza, $\\left(\\frac{1}{' . count($risk_factors) . '}\\right)^' . strval($questions - 1) . '=$<span class="label label-success">$\\frac{1}{' . pow(count($risk_factors), $questions - 1) . '}$</span>.';
         $hints[] = $page;
         $correct = [1, pow(count($risk_factors), $questions - 1)];
     }
     if ($option < 4) {
         $solution = '$' . $correct . '$ Ft';
         return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'labels' => ['right' => 'Ft'], 'hints' => $hints);
     } else {
         $solution = '$\\frac{1}{' . $correct[1] . '$';
         return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'type' => 'fraction', 'hints' => $hints);
     }
 }
Beispiel #10
12
 function Generate($level)
 {
     if ($level <= 3) {
         $num1 = rand(2, 4);
         $num2 = rand(5, 9);
     } elseif ($level <= 6) {
         $num1 = rand(4, 9);
         $num2 = rand(10, 20);
     } else {
         $num1 = rand(10, 20);
         $num2 = rand(10, 20);
     }
     // // Original exercise
     // $num1 = 6;
     // $num2 = 8;
     $mult = $num1 * $num2;
     $lcm = lcm($num1, $num2);
     $correct = $mult == $lcm ? 0 : 1;
     $options = ['Igaz', 'Hamis'];
     $solution = $options[$correct];
     $question = 'Adja meg az alábbi állítás logikai értékét (igaz vagy hamis)!<br />' . 'Ha egy szám osztható $' . $num1 . '$-' . With($num1) . ' és $' . $num2 . '$-' . With($num2) . ', akkor osztható $' . $mult . '$-' . With($mult) . ' is.';
     $page[] = 'Tudjuk, hogy ha egy szám osztható $a$-val, és osztható $b$-vel is, akkor $a$ és $b$ <b>legkisebb közös többszörösével</b> is osztható, amit $[a;b]$-vel jelölünk.';
     $page[] = 'Két szám legkisebb közös többszöröséhez először írjuk fel mindkét szám prímtényezős felbontását!';
     $hints[] = $page;
     $hints[][] = 'Az első szám prímtényezős felbontása: $' . $num1 . '=' . implode('\\cdot', $this->CanonicForm($num1)) . '$, ugyanis:' . $this->Factorization($num1);
     $hints[][] = 'A második szám prímtényezős felbontása: $' . $num2 . '=' . implode('\\cdot', $this->CanonicForm($num2)) . '$, ugyanis:' . $this->Factorization($num2);
     $page = [];
     $page[] = 'Most gyűjtsünk össze minden prímtényezőt a hozzátartozó kitevővel (ha mindkét számban előfordul, akkor a nagyobb kitevőt nézzük): $$[' . $num1 . ';' . $num2 . ']=' . implode('\\cdot', $this->CanonicForm($lcm)) . '=' . $lcm . '$$';
     $page[] = 'Mivel a legkisebb közös többszörös ' . ($lcm == $mult ? 'megegyezik' : 'nem egyezik meg') . ' ' . The($mult) . ' $' . $mult . '$-' . With($mult) . ', ezért az állítás <span class="label label-success">' . strtolower($solution) . '</span>.';
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'options' => $options, 'hints' => $hints);
 }
Beispiel #11
1
 function Generate($level)
 {
     // Generate solutions
     $values = range(-$level, $level);
     $rand_keys = array_rand($values, 2);
     $rand_key2 = array_rand($values, 1);
     $x1 = $values[$rand_keys[0]];
     $x2 = $values[$rand_keys[1]];
     // Generate coefficients (using Viète-formulae)
     // ax^2+bx+c=d
     $a = rand(1, ceil($level / 3)) * -1 ^ rand(1, 2);
     $b = -$a * ($x1 + $x2);
     $d = rand(-$level, $level);
     $c = $a * $x1 * $x2 + $d;
     // // Original exercise
     // $x1 = -3;
     // $x2 = 7;
     // $a = 1;
     // $b = -$a*($x1 + $x2);
     // $d = 0;
     // $c = $a*$x1*$x2+$d;
     $equation = $this->Equation($a, $b, $c, $d, $x1, $x2);
     $question = 'Oldja meg ' . The($a) . ' $' . $equation . '$ egyenletet a valós számok halmazán!';
     $hints = $this->Hints($a, $b, $c, $d, $x1, $x2);
     if ($x1 != $x2) {
         $correct = array($x1, $x2);
         $solution = 'Az első megoldás $x_1=' . $x1 . '$, a második $x_2=' . $x2 . '$.';
     } else {
         $correct = array($x1, NULL);
         $solution = 'Az egyenlet megoldása: $x=' . $x1 . '$.';
     }
     $labels = array('$x_1$', '$x_2$');
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'labels' => $labels, 'hints' => $hints, 'type' => 'list');
 }
Beispiel #12
0
 function Hints($a, $b)
 {
     $hints[][] = 'Rajzoljuk fel először az $f(x)=\\sin x$ függvényt!' . $this->DrawSineFunction($a, $b, 0);
     if ($a != 1) {
         $hints[][] = 'Most rajzoljuk fel az $f(x)=' . $this->SinFunctionText($a) . '$ függvényt! Ezt úgy kapjuk meg, ha az eredeti függvényt kétszeresére ' . ($a == 2 ? '"zsugorítjuk"' : '"nyújtjuk"') . ' az $x$ tengely mentén:' . $this->DrawSineFunction($a, $b, 1);
     }
     if (abs($b) > 1) {
         $hints[][] = 'Látjuk, hogy a függvény sosem veszi fel ' . The($b) . ' $' . $b . '$ értéket, ezért a feladatnak <span class="label label-success">nincs megoldása</span>.' . $this->DrawSineFunction($a, $b, 2);
     } else {
         $sol = $this->Solution($a, $b, FALSE);
         $per = $this->Period($a, $b, FALSE);
         $hints[][] = 'Nézzük meg, hogy a függvény melyik pontokban veszi fel  ' . The($b) . ' $' . $b . '$ értéket:' . $this->DrawSineFunction($a, $b, 2);
         $hints[][] = 'Az ábráról könnyen leolvasható, hogy a függvény a $' . $sol . '$ helyen veszi fel ' . ' ' . The($b) . ' $' . $b . '$-' . Dativ($b) . ', és az is, hogy a megoldások közti távolság $' . $per . '$.' . $this->DrawSineFunction($a, $b, 3);
         $hints[][] = 'Tehát a megoldás <span class="label label-success">$' . ($sol == '0' ? '' : $sol . '+') . 'k\\cdot' . $per . '$</span>.' . $this->DrawSineFunction($a, $b, 3);
     }
     return $hints;
 }
Beispiel #13
0
 function Generate($level)
 {
     $q = rand(2, 2 * $level);
     $a0 = pow(-1, rand(0, 1)) * rand(1, $level);
     $a1 = $a0 * $q;
     $a2 = $a1 * $q;
     $question = 'Egy mértani sorozat három egymást követő tagja ebben a sorrendben $' . $a0 . ';x$ és $' . $a2 . '$. ';
     $question .= 'Határozza meg a sorozat hányadosát!';
     $correct = array($q, -$q);
     $solution = '$q_1=' . $q . '$, és $q_2=' . strval(-$q) . '$';
     $labels = array('$q_1$', '$q_2$');
     $page[] = 'A mértani sorozatban minden tagot úgy tudunk kiszámolni, hogy megszorozzuk $\\textcolor{blue}{q}$-val (a <i>hányadossal</i>) az előző számot:$$a_1\\xrightarrow{\\cdot\\textcolor{blue}{q}}a_2\\xrightarrow{\\cdot\\textcolor{blue}{q}}a_3$$';
     $page[] = 'Tehát ha az első szám $' . $a0 . '$, akkor' . '$$\\begin{eqnarray}a_1&=&' . $a0 . '\\\\' . ' a_2&=&a_1\\cdot\\textcolor{blue}{q}=' . $a0 . '\\cdot\\textcolor{blue}{q}=\\textcolor{red}{x} \\\\ ' . ' a_3&=&a_2\\cdot\\textcolor{blue}{q}=a_1\\cdot\\textcolor{blue}{q}^2=' . $a2 . '\\end{eqnarray}$$';
     $page[] = 'Látjuk, hogy ha ' . The($a2) . ' $' . $a2 . '$-' . Dativ($a2) . ' elosztjuk $' . $a0 . '$-' . With($a0) . ', a hányados négyzetét kapjuk:$$\\textcolor{blue}{q}^2=' . $a2 . ':' . ($a0 < 0 ? '(' . $a0 . ')' : $a0) . '=' . strval(pow($q, 2)) . '$$';
     $page[] = 'Ha ebből négyzetgyököt vonunk, megkapjuk a $\\textcolor{blue}{q}$ abszolútértékét:' . '$$|\\textcolor{blue}{q}|=\\sqrt{' . strval(pow($q, 2)) . '}=' . abs($q) . '$$';
     $page[] = 'Tehát a $q$ értéke <span class="label label-success">$' . $q . '$</span>, vagy <span class="label label-success">$' . strval(-$q) . '$</span>.';
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'labels' => $labels, 'type' => 'list', '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 = 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);
 }
Beispiel #15
0
 function Generate($level)
 {
     $q_no = rand(5, 7);
     $opts_no = rand(2, 4);
     // // Original exercise
     // $q_no = 6;
     // $opts_no = 3;
     $opts_text = range(chr(65), chr(65 + $opts_no - 1));
     $prob = 1 - pow(($opts_no - 1) / $opts_no, $q_no);
     $question = 'Egy ' . NumText($q_no) . 'kérdéses tesztben minden kérdésnél a megadott ' . NumText($opts_no) . ' lehetőség (' . StringArray($opts_text, 'és') . ') közül kellett kiválasztani a helyes választ. Az egyik diák nem készült fel a tesztre, válaszait tippelve, véletlenszerűen adja meg. Mekkora valószínűséggel lesz legalább egy jó válasza a tesztben? <i>(Válaszát két tizedesjegyre kerekítve adja meg!)</i>';
     $page[] = 'Annak a valószínűsége, hogy egy válasz hibás: $$\\frac{' . strval($opts_no - 1) . '}{' . $opts_no . '}$$';
     $page[] = 'Annak a valószínűsége, hogy mind ' . The($q_no) . ' ' . NumText($q_no) . ' válasz hibás: $$\\left(\\frac{' . strval($opts_no - 1) . '}{' . $opts_no . '}\\right)^{' . $q_no . '}$$';
     $page[] = 'Annak a valószínűsége, hogy legalább az egyik válasz jó: $$1-\\left(\\frac{' . strval($opts_no - 1) . '}{' . $opts_no . '}\\right)^{' . $q_no . '}\\approx' . round2($prob, 4) . '$$';
     $page[] = 'Ennek a két tizedesjegyre kerekített értéke <span class="label label-success">$' . round2($prob) . '$</span>.';
     $hints[] = $page;
     $correct = round1($prob, 2);
     $solution = '$' . round2($prob, 2) . '$';
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints);
 }
Beispiel #16
0
 function Generate($level)
 {
     $length = 1 + $level;
     // // Original exercise
     // $length = 3;
     $question = 'Hány olyan ' . ($length == 2 ? 'két' : NumText($length)) . 'jegyű pozitív egész szám van, amelynek minden számjegye különböző?';
     $num_list = range(9, 9 - $length + 2);
     $correct = 9 * array_product($num_list);
     $solution = '$' . $correct . '$';
     $page[] = 'Összesen $10$ számjegy van: $0,1,2,3,4,5,6,7,8,9$.';
     $page[] = 'Az első számjegy helyére a $0$-n kívül bármelyik számjegy kerülhet, ami összesen $10-1=9$ lehetőség.';
     for ($i = 1; $i < $length; $i++) {
         $page[] = The($i + 1, TRUE) . ' ' . OrderText($i + 1) . ' számjegy helyére bármelyik számjegy kerülhet, de mivel már felhasználtunk $' . $i . '$ darab számjegyet, már csak $10-' . $i . '=' . strval(10 - $i) . '$ számjegy közül választhatunk.';
     }
     $page[] = 'A megoldást úgy kapjuk meg, ha a lehetőségeket összeszorozzuk:$$9\\cdot' . implode('\\cdot', $num_list) . '=' . $correct . '$$';
     $page[] = 'Tehát a megoldás <span class="label label-success">$' . $correct . '$</span>.';
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints);
 }
Beispiel #17
0
 function Generate($level)
 {
     $flower = rand($level, 2 * $level);
     $all = $flower + rand(1, 2);
     $p = rand(80, 95) / 100;
     // // Original exercise
     // $flower = 8;
     // $all 	= 10;
     // $p 		= 0.91;
     $question = 'A kertészetben a sok virághagymának csak egy része hajt ki: $' . round2($p) . '$ annak a valószínűsége, hogy egy elültetett virághagyma kihajt. Számítsa ki annak a valószínűségét, hogy $' . $all . '$ darab elültetett virághagyma közül legalább $' . $flower . '$ kihajt! Válaszát három tizedesjegyre kerekítve adja meg!';
     $text = 'Ha $' . $all . '$ virághagyma közül legalább $' . $flower . '$ hajt ki, az azt jelenti, hogy ';
     for ($i = $flower; $i <= $all; $i++) {
         $text .= '$' . $i . '$';
         if ($i == $all - 1) {
             $text .= ' vagy ';
         } elseif ($i == $all - 2) {
             $text .= ', ';
         }
     }
     $text .= ' virághagyma hajt ki.';
     $page[] = $text;
     $page[] = 'Vizsgáljuk meg ezeket az eseteket külön-külön!';
     $hints[] = $page;
     $order = 1;
     for ($i = $flower; $i <= $all; $i++) {
         $p_i = binomial_coeff($all, $i) * pow($p, $i) * pow(1 - $p, $all - $i);
         $page = [];
         $page[] = '<b>' . $order . '. eset:</b> $' . $all . '$ virághagyma közül $' . $i . '$ hajt ki.';
         $page[] = '$' . $all . '$ virághagyma közül $' . $i . '$-' . Dativ($i) . ' összesen ${' . $all . '\\choose ' . $i . '}$-féleképpen lehet kiválasztani.';
         $page[] = 'Annak a valószínűsége, hogy ' . The($i) . ' $' . $i . '$ hagyma kihajt: $' . round2($p, 4) . '^{' . $i . '}$.';
         $page[] = 'Annak a valószínűsége, hogy ' . The($all - $i) . ' $' . strval($all - $i) . '$ hagyma nem hajt ki: $(1-' . round2($p, 4) . ')^{' . strval($all - $i) . '}$.';
         $page[] = 'Így ennek az esetnek a valószínűsége összesen:$${' . $all . '\\choose ' . $i . '}\\cdot' . round2($p, 4) . '^{' . $i . '}\\cdot(1-' . round2($p, 4) . ')^{' . strval($all - $i) . '}\\approx' . round2($p_i, 4) . '$$';
         $hints[] = $page;
         $p_all1[] = round1($p_i, 4);
         $p_all2[] = round2($p_i, 4);
         $order++;
     }
     $hints[][] = 'A keresett valószínűség tehát $' . implode('+', $p_all2) . '=' . round2(array_sum($p_all1), 5) . '$, aminek a három tizedesjegyre kerekített értéke <span class="label label-success">$' . round2(array_sum($p_all1), 3) . '$</span>.';
     $correct = round1(array_sum($p_all1), 3);
     $solution = '$' . $correct . '$';
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints);
 }
 function Generate($level)
 {
     $A = rand(2, 3);
     $B = rand(2, 5);
     $C = 12 - $A - $B;
     // // Original exercise
     // $A = 5;
     // $B = 4;
     // $C = 3;
     $question = 'Az öttusa lovaglás számában egy akadálypályán tizenkét különböző akadályt kell a versenyzőnek átugratnia. Egy akadály a nehézsége alapján három csoportba sorolható: $A$, $B$ vagy $C$ típusú. Ádám a verseny előtti bemelegítéskor először ' . The($A) . ' ' . NumText($A) . ' darab $A$, majd ' . The($B) . ' ' . NumText($B) . ' darab $B$, végül ' . The($C) . ' ' . NumText($C) . ' darab $C$ típusú akadályon ugrat át, mindegyiken pontosan egyszer. Bemelegítéskor az egyes akadálytípusokon belül a sorrend szabadon megválasztható. Számítsa ki, hogy a bemelegítés során hányféle sorrendben ugrathatja át Ádám a tizenkét akadályt!';
     $correct = fact($A) * fact($B) * fact($C);
     $solution = '$' . round2($correct, 0) . '$';
     $type = 'int';
     $page[] = 'Az $A$ típusú akadályok lehetséges sorrendjeinek a száma $' . $A . '!=' . fact($A) . '$.';
     $page[] = 'A $B$ típusú akadályok lehetséges sorrendjeinek a száma $' . $B . '!=' . fact($B) . '$.';
     $page[] = 'A $C$ típusú akadályok lehetséges sorrendjeinek a száma $' . $C . '!=' . fact($C) . '$.';
     $page[] = 'A $12$ akadály lehetséges sorrendjeinek a száma ezek szorzata.';
     $page[] = 'Tehát Ádám összesen $' . fact($A) . '\\cdot' . fact($B) . '\\cdot' . fact($C) . '=$<span class="label label-success">$' . round2($correct, 0) . '$</span> különböző sorrendben ugrathatja át a tizenkét akadályt.';
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'type' => $type, 'hints' => $hints);
 }
Beispiel #19
0
 function Generate($level)
 {
     $q = rand(2, 2 * $level);
     $a0 = pow(-1, rand(0, 1)) * rand(1, $level);
     // // Original exercise
     // $q = 3/4;
     // $a0 = 32;
     $a1 = $a0 * $q;
     $a2 = $a1 * $q;
     $question = 'Egy mértani sorozat három egymást követő tagja ebben a sorrendben $' . $a0 . ';x$ és $' . $a2 . '$. ';
     $question .= 'Határozza meg az $x$ értékét!';
     $correct = array($a1, -$a1);
     $solution = '$x_1=' . $a1 . '$, és $x_2=' . strval(-$a1) . '$$';
     $labels = array('$x_1$', '$x_2$');
     $page[] = 'A mértani sorozatban minden tagot úgy tudunk kiszámolni, hogy megszorozzuk $\\textcolor{blue}{q}$-val (a <i>hányadossal</i>) az előző számot:$$a_1\\xrightarrow{\\cdot\\textcolor{blue}{q}}a_2\\xrightarrow{\\cdot\\textcolor{blue}{q}}a_3$$';
     $page[] = 'Tehát ha az első szám $' . $a0 . '$, akkor' . '$$\\begin{eqnarray}a_1&=&' . $a0 . '\\\\' . ' a_2&=&a_1\\cdot\\textcolor{blue}{q}=' . $a0 . '\\cdot\\textcolor{blue}{q}=\\textcolor{red}{x} \\\\ ' . ' a_3&=&a_2\\cdot\\textcolor{blue}{q}=a_1\\cdot\\textcolor{blue}{q}^2=' . $a2 . '\\end{eqnarray}$$';
     $page[] = 'Látjuk, hogy ha ' . The($a2) . ' $' . $a2 . '$-' . Dativ($a2) . ' elosztjuk $' . $a0 . '$-' . With($a0) . ', a hányados négyzetét kapjuk:$$\\textcolor{blue}{q}^2=' . $a2 . ':' . ($a0 < 0 ? '(' . $a0 . ')' : $a0) . '=' . strval(pow($q, 2)) . '$$';
     $page[] = 'Ha ebből négyzetgyököt vonunk, megkapjuk a $\\textcolor{blue}{q}$ abszolútértékét:' . '$$|\\textcolor{blue}{q}|=\\sqrt{' . strval(pow($q, 2)) . '}=' . abs($q) . '$$';
     $page[] = 'Tehát a $q$ értéke $' . $q . '$, vagy $' . strval(-$q) . '$.';
     $page[] = 'Így már az $\\textcolor{red}{x}$ értékét is ki tudjuk számolni:' . '$$\\begin{eqnarray}\\textcolor{red}{x_1}&=&' . $a0 . '\\cdot' . ($q < 0 ? '(' . $q . ')' : $q) . '=' . strval($a0 * $q) . '\\\\ \\textcolor{red}{x_2}&=&' . $a0 . '\\cdot' . (-$q < 0 ? '(' . strval(-$q) . ')' : strval(-$q)) . '=' . strval(-$a0 * $q) . '\\end{eqnarray}$$';
     $page[] = 'Tehát az $x$ értéke <span class="label label-success">$' . strval($a0 * $q) . '$</span>, vagy <span class="label label-success">$' . strval(-$a0 * $q) . '$</span>.';
     // $page[] = 'A mértani sorozatban minden tagot úgy tudunk kiszámolni, hogy megszorozzuk $\textcolor{blue}{q}$-val (a <i>hányadossal</i>) az előző számot:$$a_1\xrightarrow{\cdot\textcolor{blue}{q}}a_2\xrightarrow{\cdot\textcolor{blue}{q}}a_3$$';
     // $page[] = 'Tehát ha az első szám $'.$a0.'$, akkor'
     // 	.'$$\begin{eqnarray}a_1&=&'.$a0.'\\\\'
     // 	.' a_2&=&a_1\cdot\textcolor{blue}{q}='.$a0.'\cdot\textcolor{blue}{q}=\textcolor{red}{x} \\\\ '
     // 	.' a_3&=&a_2\cdot\textcolor{blue}{q}=a_1\cdot\textcolor{blue}{q}^2='.$a2.'\end{eqnarray}$$';
     // $page[] = 'Látjuk, hogy ha '.The($a2).' $'.$a2.'$-'.Dativ($a2).' elosztjuk $'.$a0.'$-'.With($a0)
     // 	.', a hányados négyzetét kapjuk:$$\textcolor{blue}{q}^2='.$a2.':'.($a0<0 ? '('.$a0.')' : $a0).'=\frac{9}{16}$$';
     // $page[] = 'Ha ebből négyzetgyököt vonunk, megkapjuk a $\textcolor{blue}{q}$ abszolútértékét:'
     // 	.'$$|\textcolor{blue}{q}|=\sqrt{\frac{9}{16}}=\frac{3}{4}$$';
     // $page[] = 'Tehát a $q$ értéke $\frac{3}{4}$, vagy $-\frac{3}{4}$.';
     // $page[] = 'Így már az $\textcolor{red}{x}$ értékét is ki tudjuk számolni:'
     // 	.'$$\begin{eqnarray}\textcolor{red}{x_1}&=&'.$a0.'\cdot\frac{3}{4}=8\cdot3='.strval($a0*$q).'\\\\ \textcolor{red}{x_2}&=&'.$a0.'\cdot\left(-\frac{3}{4}\right)=8\cdot(-3)='.strval(-$a0*$q).'\end{eqnarray}$$';
     // $page[] = 'Tehát az $x$ értéke <span class="label label-success">$'.strval($a0*$q).'$</span>, vagy <span class="label label-success">$'.strval(-$a0*$q).'$</span>.';
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'labels' => $labels, 'type' => 'list', 'hints' => $hints);
 }
function basic_division_explanation($dividend, $divisor)
{
    $digits = str_split($dividend);
    $order = array("első", "második", "harmadik", "negyedik", "ötödik", "hatodik", "hetedik", "nyolcadik", "kilencedik", "tizedik");
    // Multiply numbers
    $remain_prev = 0;
    $quotient_total = 0;
    for ($ind = 0; $ind < count($digits); $ind++) {
        $text = '';
        $digit = $digits[$ind];
        $dividend_current = 10 * $remain_prev + $digit;
        $quotient_current = floor($dividend_current / $divisor);
        $remain_current = $dividend_current % $divisor;
        $check_current = $quotient_current * $divisor;
        if ($quotient_total != 0 || $quotient_current != 0) {
            $quotient_total = $quotient_total * 10 + $quotient_current;
        }
        if ($remain_prev == 0) {
            $text .= 'Írjuk le alulra ' . (in_array($ind, [1, 4]) ? 'az' : 'a') . ' ' . $order[$ind] . ' számjegyet! ';
        } else {
            $text .= 'Írjuk ' . The($remain_prev) . ' $' . $remain_prev . '$ mellé ' . (in_array($ind, [1, 4]) ? 'az' : 'a') . ' ' . $order[$ind] . ' számjegyet! ';
        }
        if ($quotient_current == 0) {
            $text .= 'Mivel ' . The($dividend_current) . ' $' . $dividend_current . '$-' . In($dividend_current) . ' nincs meg ' . The($divisor) . ' $' . $divisor . '$, ezért ';
            if ($quotient_total == 0) {
                $text .= 'továbbmegyünk: ';
            } else {
                $text .= 'leírjuk a $0$-t az eredményhez: ';
            }
        } elseif ($divisor > 30) {
            $dividend_round = round($dividend_current / 10);
            $divisor_round = round($divisor / 10);
            $quotient_round = floor($dividend_round / $divisor_round);
            $check_round = $quotient_round * $divisor;
            $text .= 'Hányszor van meg ' . The($dividend_current) . ' $' . $dividend_current . '$-' . In($dividend_current) . ' ' . The($divisor) . ' $' . $divisor . '$? A becsléshez kerekítsük tízesekre mind a két számot, majd ' . 'mindkét számot egyszerűsítsük $10$-zel: $\\require{cancel}' . $dividend_round . '0:' . $divisor_round . '0=' . $dividend_round . '\\cancel{0}:' . $divisor_round . '\\cancel{0}=' . '\\textcolor{green}{' . $quotient_round . '}$. Ellenőrzésképp szorozzunk vissza az eredeti osztóval: $\\textcolor{green}{' . $quotient_round . '}\\cdot' . $divisor . '=' . $check_round . '$. Mivel az eredmény ' . ($check_round <= $dividend_current ? 'nem ' : '') . 'nagyobb, mint ' . The($dividend_current) . ' $' . $dividend_current . '$, ezért az eredményhez $' . $quotient_current . '$-' . Dativ($quotient_current) . ' írunk, alulra pedig a maradékot, ami  $' . $remain_current . '$, mert $' . $quotient_current . '\\cdot' . $divisor . '=' . $check_current . '$, és $' . $dividend_current . '-' . $check_current . '=' . $remain_current . '$:';
        } else {
            $text .= '$' . $dividend_current . '$-' . In($dividend_current) . ' ' . The($divisor) . ' $' . $divisor . '$ meg van $' . $quotient_current . '$-' . Times($quotient_current) . ', maradék ' . The($remain_current) . ' $' . $remain_current . '$, mert $' . $quotient_current . '\\cdot' . $divisor . '=' . $check_current . '$. Az eredményt jobb ' . 'oldalra írom, a maradékot pedig alulra:';
        }
        $text .= basic_division_generate_equation($dividend, $divisor, $ind);
        $explanation[] = $text;
        $remain_prev = $remain_current;
    }
    $check = $divisor * $quotient_total;
    $explanation[] = 'Ellenőrizzük az eredményt úgy, hogy összeszorozzuk ' . The($quotient_total) . ' $' . $quotient_total . '$-' . Dativ($quotient_total) . ' ' . The($divisor) . ' $' . $divisor . '$-' . With($divisor) . '!';
    $explanation[] = basic_multiplication_explanation($divisor, $quotient_total);
    if ($remain_current != 0) {
        $explanation[] = 'Végül adjuk hozzá a kapott eredményhez a maradékot:' . basic_addition_generate_equation(array($check, $remain_current));
        $explanation[] = basic_addition_explanation(array($check, $remain_current));
    }
    return $explanation;
}
    function Generate($level)
    {
        if ($level <= 3) {
            $male = rand(2, 3);
            $female = $male + rand(1, 2);
        } elseif ($level <= 6) {
            $male = rand(3, 4);
            $female = $male + rand(2, 3);
        } else {
            $male = rand(4, 5);
            $female = $male + rand(3, 4);
        }
        // // Original exercise
        // $male = 4;
        // $female = 5;
        $total = $male + $female;
        $min = $male - 1;
        $question = 'Egy állatkert a tigrisek fennmaradása érdekében tenyésztő programba kezd. Beszereznek $' . $male . '$ hím és $' . $female . '$ nőstény kölyöktigrist, melyeket egy kisebb és egy nagyobb kifutóban kívánnak elhelyezni a következő szabályok mindegyikének betartásával:
			<ol type="I">
				<li>' . NumText($min) . By($min) . ' kevesebb tigris egyik kifutóban sem lehet;</li>
				<li>a nagyobb kifutóba több tigris kerül, mint a kisebbikbe;</li>
				<li>mindkét kifutóban hím és nőstény tigrist is el kell helyezni;</li>
				<li>egyik kifutóban sem lehet több hím, mint nőstény tigris.</li>
			</ol>
			Hányféleképpen helyezhetik el a $' . $total . '$ tigrist a két kifutóban?<br />(A tigriseket megkülönböztetjük egymástól, és két elhelyezést eltérőnek tekintünk, ha van olyan tigris, amelyik az egyik elhelyezésben más kifutóban van, mint a másik elhelyezésben.)';
        for ($i = $min; $i <= $total; $i++) {
            if ($i == $min) {
                $page[] = 'Válogassuk szét az eseteket aszerint, hogy a kisebbik kifutóban hány tigris van!';
            } else {
                $page = [];
            }
            $page[] = '<b>' . strval($i - $min + 1) . '. eset:</b> a kisebbik kifutóban $' . $i . '$ tigris van, a nagyobbikban pedig $' . strval($total - $i) . '$.' . ($i == $min ? ' (Ennél kevesebb az I) feltétel miatt sehol sem lehet.)' : '');
            if ($i >= $total - $i) {
                $page[] = 'Ez az eset azért <span class="label label-danger">nem jó</span>, mert a II) feltétel szerint a kisebb kifutóban kevesebb tigrisnek kell lennie, mint a nagyobbikban. (És itt meg is állhatunk, mert ha tovább növeljük a tigrisek számát, ez a feltétel úgy sem fog teljesülni.)';
                $hints[] = $page;
                break;
            }
            $page[] = 'Most válogassuk szét az eseteket aszerint, hogy ' . The($i) . ' $' . $i . '$ tigris közül hány nőstény!';
            for ($j = 0; $j <= $i; $j++) {
                $text = '<ul><li><i>' . strtoupper(The($i)) . ' $' . $i . '$ tigris közül $' . $j . '$ hím és $' . strval($i - $j) . '$ nőstény.</i><br />';
                if ($i == 0 || $j == 0) {
                    $text .= 'Ez az eset azért <span class="label label-danger">nem jó</span>, mert a III) feltétel miatt nősténynek és hímnek is kell lennie a kifutóban.';
                } elseif ($j > $i - $j) {
                    $text .= 'Ez az eset azért <span class="label label-danger">nem jó</span>, mert a IV) feltétel miatt nem lehet a kifutóban több hím, mint nőstény.';
                } elseif ($male - $j > $female - $i + $j) {
                    $text .= 'Ez az eset azért <span class="label label-danger">nem jó</span>, mert ha ez azt jelentené, hogy a másik kifutóban $' . strval($male - $j) . '$ hím és $' . strval($female - $i + $j) . '$ nőstény van, viszont a IV) feltétel miatt nem lehet a kifutóban több hím, mint nőstény.';
                } else {
                    $female_opt = binomial_coeff($female, $i - $j);
                    $male_opt = binomial_coeff($male, $j);
                    $answers[] = $female_opt * $male_opt;
                    $text .= 'Ez az eset <span class="label label-success">jó</span>, mert minden feltételnek megfelel.
						<ul>
							<li>$' . $male . '$ hím közül $' . $j . '$-' . Dativ($j) . ' összesen ${' . $male . '\\choose ' . $j . '}=' . $male_opt . '$-féleképpen lehet kiválasztani;</li>
							<li>$' . $female . '$ nőstény közül $' . strval($i - $j) . '$-' . Dativ($i - $j) . ' összesen ${' . $female . '\\choose ' . strval($i - $j) . '}=' . $female_opt . '$-féleképpen lehet kiválasztani;</li>
							<li>Ha már tudjuk, hogy a kisebbik kifutóban melyik tigrisek vannak, akkor már azt is tudjuk, hogy a nagyobbikban melyikek vannak, tehát ezt nem kell külön kiszámolni.</li>
							<li>Ebben az esetben összesen $' . $male_opt . '\\cdot' . $female_opt . '=$<span class="label label-info">$' . strval($female_opt * $male_opt) . '$</span> különböző lehetőség.</li>
						</ul>';
                }
                $text .= '</li></ul>';
                $page[] = $text;
            }
            $hints[] = $page;
        }
        $page = [];
        $page[] = 'Tehát összesen $' . implode('+', $answers) . '=$<span class="label label-success">$' . array_sum($answers) . '$</span>-féleképpen lehet elhelyezni a tigriseket a két kifutóban.';
        $hints[] = $page;
        $correct = array_sum($answers);
        $solution = '$' . $correct . '$';
        return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints);
    }
Beispiel #22
0
    function Generate($level)
    {
        $colors = rand(1, 2) == 1 ? ['fekete', 'fehér'] : ['fehér', 'fekete'];
        $type = rand(0, 3);
        $ind = range(0, 3);
        shuffle($ind);
        // // Original exercise
        // $colors = ['fekete', 'fehér'];
        // $type = 0;
        // $ind = range(0,3);
        if ($type == 0) {
            $question = 'Egy fiókban néhány sapka van. Tekintsük a következő állítást:<br />
				<i>„A fiókban minden sapka ' . $colors[0] . '.”</i>
				<br />Válassza ki az alábbiak közül az összes állítást, amely tagadása a fentinek!';
            $page[] = 'Az eredeti állítás azt jelenti, hogy a fiókban <i>mindegyik</i> sapka színe ' . $colors[0] . '.';
            $page[] = 'Ez az állítás akkor nem teljesül, ha van <i>legalább egy</i> olyan sapka a fiókban, ami <i>nem</i> ' . $colors[0] . '.';
            $page[] = 'Nézzük meg, hogy melyik állítás jelenti ugyanezt!';
            $opt[$ind[0]] = '<i>„A fiókban minden sapka ' . $colors[1] . '.”</i>';
            $opt[$ind[1]] = '<i>„A fiókban nincs ' . $colors[1] . ' sapka.”</i>';
            $opt[$ind[2]] = '<i>„A fiókban van olyan sapka, amely nem ' . $colors[0] . '.”</i>';
            $opt[$ind[3]] = '<i>„A fiókban nem minden sapka ' . $colors[0] . '.”</i>';
            $page[3 + $ind[0]] = The($ind[0] + 1, TRUE) . ' <b>' . OrderText($ind[0] + 1) . '</b> állítás azt jelenti, hogy a fiókban <i>mindegyik</i> sapka színe ' . $colors[1] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $page[3 + $ind[1]] = The($ind[1] + 1, TRUE) . ' <b>' . OrderText($ind[1] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül <i>egyik sem</i> ' . $colors[1] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $page[3 + $ind[2]] = The($ind[2] + 1, TRUE) . ' <b>' . OrderText($ind[2] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül van <i>legalább egy</i>, ami <i>nem</i> ' . $colors[0] . ', ami ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-success">igaz</span>.';
            $page[3 + $ind[3]] = The($ind[3] + 1, TRUE) . ' <b>' . OrderText($ind[3] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül van <i>legalább egy</i>, ami <i>nem</i> ' . $colors[0] . ', ami ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-success">igaz</span>.';
            $hints[] = $page;
            $correct[$ind[0]] = FALSE;
            $correct[$ind[1]] = FALSE;
            $correct[$ind[2]] = TRUE;
            $correct[$ind[3]] = TRUE;
            $ind1 = min($ind[2], $ind[3]);
            $ind2 = max($ind[2], $ind[3]);
            $solution = The($ind1, TRUE) . ' ' . OrderText($ind1) . ' és ' . The($ind2) . ' ' . OrderText($ind2) . ' állítás igaz, a többi hamis.';
        } elseif ($type == 1) {
            $question = 'Egy fiókban néhány sapka van. Tekintsük a következő állítást:<br />
				<i>„A fiókban nincs ' . $colors[1] . ' sapka.”</i>
				<br />Válassza ki az alábbiak közül az összes állítást, amely tagadása a fentinek!';
            $page[] = 'Az eredeti állítás azt jelenti, hogy a sapkák közül <i>egyik sem</i> ' . $colors[1] . '.';
            $page[] = 'Ez az állítás akkor nem teljesül, ha van <i>legalább egy</i> olyan sapka, ami ' . $colors[1] . '.';
            $page[] = 'Nézzük meg, hogy melyik állítás jelenti ugyanezt!';
            $opt[$ind[0]] = '<i>„A fiókban minden sapka ' . $colors[0] . '.”</i>';
            $opt[$ind[1]] = '<i>„A fiókban nincs ' . $colors[0] . ' sapka.”</i>';
            $opt[$ind[2]] = '<i>„A fiókban van olyan sapka, amelyik ' . $colors[1] . '.”</i>';
            $opt[$ind[3]] = '<i>„A fiókban nem minden sapka ' . $colors[0] . '.”</i>';
            $page[3 + $ind[0]] = The($ind[0] + 1, TRUE) . ' <b>' . OrderText($ind[0] + 1) . '</b> állítás azt jelenti, hogy a fiókban <i>mindegyik</i> sapka színe ' . $colors[0] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $page[3 + $ind[1]] = The($ind[1] + 1, TRUE) . ' <b>' . OrderText($ind[1] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül <i>egyik sem</i> ' . $colors[0] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $page[3 + $ind[2]] = The($ind[2] + 1, TRUE) . ' <b>' . OrderText($ind[2] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül van <i>legalább egy</i>, ami ' . $colors[1] . ', ami ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-success">igaz</span>.';
            $page[3 + $ind[3]] = The($ind[3] + 1, TRUE) . ' <b>' . OrderText($ind[3] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül van <i>legalább egy</i>, ami <i>nem</i> ' . $colors[0] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $hints[] = $page;
            $correct[$ind[0]] = FALSE;
            $correct[$ind[1]] = FALSE;
            $correct[$ind[2]] = TRUE;
            $correct[$ind[3]] = FALSE;
            $solution = The($ind[2], TRUE) . ' ' . OrderText($ind[2]) . ' állítás igaz, a többi hamis.';
        } elseif ($type == 2) {
            $question = 'Egy fiókban néhány sapka van. Tekintsük a következő állítást:<br />
				<i>„A fiókban van olyan sapka, amelyik ' . $colors[1] . '.”</i>
				<br />Válassza ki az alábbiak közül az összes állítást, amely tagadása a fentinek!';
            $page[] = 'Az eredeti állítás azt jelenti, hogy a sapkák közül <i>legalább az egyik</i> ' . $colors[1] . '.';
            $page[] = 'Ez az állítás akkor nem teljesül, ha a sapkák közül <i>egyik sem</i> ' . $colors[1] . '.';
            $page[] = 'Nézzük meg, hogy melyik állítás jelenti ugyanezt!';
            $opt[$ind[0]] = '<i>„A fiókban minden sapka ' . $colors[0] . '.”</i>';
            $opt[$ind[1]] = '<i>„A fiókban nincs ' . $colors[1] . ' sapka.”</i>';
            $opt[$ind[2]] = '<i>„A fiókban van olyan sapka, amelyik ' . $colors[0] . '.”</i>';
            $opt[$ind[3]] = '<i>„A fiókban nem minden sapka ' . $colors[1] . '.”</i>';
            $page[3 + $ind[0]] = The($ind[0] + 1, TRUE) . ' <b>' . OrderText($ind[0] + 1) . '</b> állítás azt jelenti, hogy a fiókban <i>mindegyik</i> sapka színe ' . $colors[0] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $page[3 + $ind[1]] = The($ind[1] + 1, TRUE) . ' <b>' . OrderText($ind[1] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül <i>egyik sem</i> ' . $colors[1] . ', ami ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-success">igaz</span>.';
            $page[3 + $ind[2]] = The($ind[2] + 1, TRUE) . ' <b>' . OrderText($ind[2] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül van <i>legalább egy</i>, ami ' . $colors[0] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $page[3 + $ind[3]] = The($ind[3] + 1, TRUE) . ' <b>' . OrderText($ind[3] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül van <i>legalább egy</i>, ami <i>nem</i> ' . $colors[1] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $hints[] = $page;
            $correct[$ind[0]] = FALSE;
            $correct[$ind[1]] = TRUE;
            $correct[$ind[2]] = FALSE;
            $correct[$ind[3]] = FALSE;
            $solution = The($ind[1], TRUE) . ' ' . OrderText($ind[1]) . ' állítás igaz, a többi hamis.';
        } elseif ($type == 3) {
            $question = 'Egy fiókban néhány sapka van. Tekintsük a következő állítást:<br />
				<i>„A fiókban nem minden sapka ' . $colors[1] . '.”</i>
				<br />Válassza ki az alábbiak közül az összes állítást, amely tagadása a fentinek!';
            $page[] = 'Az eredeti állítás azt jelenti, hogy a sapkák közül <i>legalább</i> az egyik <i>nem</i> ' . $colors[1] . '.';
            $page[] = 'Ez az állítás akkor nem teljesül, ha a sapkák közül <i>egyik sem</i> ' . $colors[1] . '.';
            $page[] = 'Nézzük meg, hogy melyik állítás jelenti ugyanezt!';
            $opt[$ind[0]] = '<i>„A fiókban minden sapka ' . $colors[0] . '.”</i>';
            $opt[$ind[1]] = '<i>„A fiókban nincs ' . $colors[1] . ' sapka.”</i>';
            $opt[$ind[2]] = '<i>„A fiókban van olyan sapka, amelyik ' . $colors[0] . '.”</i>';
            $opt[$ind[3]] = '<i>„A fiókban nem minden sapka ' . $colors[1] . '.”</i>';
            $page[3 + $ind[0]] = The($ind[0] + 1, TRUE) . ' <b>' . OrderText($ind[0] + 1) . '</b> állítás azt jelenti, hogy a fiókban <i>mindegyik</i> sapka színe ' . $colors[0] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $page[3 + $ind[1]] = The($ind[1] + 1, TRUE) . ' <b>' . OrderText($ind[1] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül <i>egyik sem</i> ' . $colors[1] . ', ami ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-success">igaz</span>.';
            $page[3 + $ind[2]] = The($ind[2] + 1, TRUE) . ' <b>' . OrderText($ind[2] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül van <i>legalább egy</i>, ami ' . $colors[0] . ', ami nem ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $page[3 + $ind[3]] = The($ind[3] + 1, TRUE) . ' <b>' . OrderText($ind[3] + 1) . '</b> állítás azt jelenti, hogy a sapkák közül van <i>legalább egy</i>, ami <i>nem</i> ' . $colors[1] . ', ami <i>nem</i> ugyanazt jelenti, mint az állítás ellentéte, ezért <span class="label label-danger">hamis</span>.';
            $hints[] = $page;
            $correct[$ind[0]] = FALSE;
            $correct[$ind[1]] = TRUE;
            $correct[$ind[2]] = FALSE;
            $correct[$ind[3]] = FALSE;
            $solution = The($ind[1], TRUE) . ' ' . OrderText($ind[1]) . ' állítás igaz, a többi hamis.';
        }
        $options[] = $opt[0];
        $options[] = $opt[1];
        $options[] = $opt[2];
        $options[] = $opt[3];
        return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'options' => $options, 'type' => 'multi', 'hints' => $hints);
    }
function series_numerical_carrot($level)
{
    if ($level <= 3) {
        $d = rand(1, 3);
        $a1 = rand(1, 5);
        $n = rand(3, 6);
        $i = 1;
    } elseif ($level <= 6) {
        $d = rand(1, 10);
        $a1 = rand(1, 10);
        $n = rand(7, 10);
        $i = rand(1, $n);
    } else {
        $d = rand(1, 20);
        $a1 = rand(1, 20);
        $n = rand(10, 20);
        $i = rand(1, $n);
    }
    $ai = $a1 + ($i - 1) * $d;
    $Sn = (2 * $a1 + ($n - 1) * $d) * $n / 2;
    $suffix = With($d);
    $article = The($ai);
    $question = 'Nagymama kertjében $' . $n . '$ sor répa van. Minden sorban $' . $d . '$-' . $suffix . ' több répa van, mint az előzőben. Hány répa van összesen nagymama kertjében, ha tudjuk, hogy ' . $article . ' $' . $i . '$. sorban $' . $ai . '$ darab répa van?';
    $correct = $Sn;
    $solution = '$' . $correct . '$';
    return array('question' => $question, 'correct' => $correct, 'solution' => $solution);
}
Beispiel #24
0
 function Hints($num1, $divisors1, $num2, $divisors2, $result, $operation)
 {
     $page[] = 'Írjuk fel ' . The($num1) . ' $' . $num1 . '$ összes pozitív osztóját:$$A=\\{' . implode(";", $divisors1) . '\\}$$';
     $page[] = 'Írjuk fel ' . The($num2) . ' $' . $num2 . '$ összes pozitív osztóját:$$B=\\{' . implode(";", $divisors2) . '\\}$$';
     $page[] = 'Ábrázoljuk az osztókat <b>Venn-diagramm</b>ban!';
     $hints[] = $page;
     $left = array_diff($divisors1, $divisors2);
     $center = array_intersect($divisors1, $divisors2);
     $right = array_diff($divisors2, $divisors1);
     if (count($left) > 0) {
         $hints[][] = 'Azokat az osztókat, amik benne vannak az $A$ halmazban, de nincsenek benne a $B$-ben, a <b>bal</b> oldalra írjuk:' . $this->VennDiagram($left);
     }
     if (count($right) > 0) {
         $hints[][] = 'Azokat az osztókat, amik benne vannak a $B$ halmazban, de nincsenek benne az $A$-ban, a <b>jobb</b> oldalra írjuk:' . $this->VennDiagram($left, [], $right);
     }
     if (count($center) > 0) {
         $hints[][] = 'Azokat az osztókat, amik az $A$ és $B$ halmazban is benne vannak, <b>középre</b> írjuk:' . $this->VennDiagram($left, $center, $right);
     }
     switch ($operation) {
         case 'A\\setminus B':
             // A\B
             $text = 'Az $A\\setminus B$ azokat az osztókat jelöli, amik az $A$ halmazban benne vannak, de a $B$ halmazban nem, vagyis a <b>bal</b> oldali részt:';
             break;
         case 'B\\setminus A':
             // B\A
             $text = 'Az $B\\setminus A$ azokat az osztókat jelöli, amik a $B$ halmazban benne vannak, de az $A$ halmazban nem, vagyis a <b>jobb</b> oldali részt:';
             break;
         case 'A\\cup B':
             // union(B,A)
             $text = 'Az $A\\cup B$ azokat az osztókat jelöli, amik az $A$ vagy a $B$ halmazban vannak, vagyis az <b>összes</b> osztót:';
             break;
         case 'A\\cap B':
             // intersect(B,A)
             $text = 'Az $A\\cap B$ azokat az osztókat jelöli, amik az $A$ és $B$ halmazban is benne vannak, vagyis a <b>középső részt</b>';
             break;
     }
     $hints[][] = $text . $this->VennDiagram($left, $center, $right, $operation);
     $hints[][] = 'Tehát ' . ($operation == 'B\\setminus A' ? 'a' : 'az') . ' $' . $operation . '$ halmaz ' . (count($result) == 1 ? 'eleme' : 'elemei') . ': <span class="label label-success">$\\{' . implode(";", $result) . '\\}$</span>.';
     return $hints;
 }
 function Hints($hours, $unknown, $avg)
 {
     $days = array_sum($hours);
     $total = $days * $avg;
     $total1 = 0;
     $total2 = 0;
     foreach ($hours as $hour => $day) {
         if (in_array($hour, $unknown)) {
             $hours2[] = $hour;
             $days2[] = $day;
             $total2 += $hour * $day;
         } else {
             $hours1[] = $hour;
             $days1[] = $day;
             $total1 += $hour * $day;
         }
     }
     $total_days2 = array_sum($days2);
     $total_days1 = array_sum($days1);
     $page[] = 'Péter havi munkaideje $' . $days . '\\cdot' . $avg . '=' . $total . '$ óra.';
     $page[] = 'Azon ' . The($total_days1) . ' $' . $total_days1 . '$ napon, amikor $' . $hours1[0] . ',\\,' . $hours1[1] . '$ vagy $' . $hours1[2] . '$ órát dolgozott, összesen $$' . $days1[0] . '\\cdot' . $hours1[0] . '+' . $days1[1] . '\\cdot' . $hours1[1] . '+' . $days1[2] . '\\cdot' . $hours1[2] . '=' . $total1 . '$$órát dolgozott.';
     $page[] = 'Tehát azon ' . The($total_days2) . ' $' . $total_days2 . '$ napon, amikor $' . $hours2[0] . '$ vagy $' . $hours2[1] . '$ órát dolgozott, összesen $$' . $total . '-' . $total1 . '=' . $total2 . '$$ órát dolgozott.';
     $hints[] = $page;
     $page = [];
     for ($i = $total_days2; $i > 0; $i--) {
         $unknown_hour = $i * $unknown[0] + ($total_days2 - $i) * $unknown[1];
         $diff = $total2 - $unknown_hour;
         if ($i == $total_days2) {
             $text = 'Ha mind ' . The($i) . ' <span class="label label-info">$' . $i . '$</span> napon $' . $unknown[0] . '$ órát dolgozott volna, akkor összesen $' . $i . '\\cdot' . $unknown[0] . '=' . $unknown_hour . '$ órát dolgozott volna.';
         } else {
             $text = 'Ha <span class="label label-info">$' . $i . '$</span> napon $' . $unknown[0] . '$ órát, és <span class="label label-info">$' . strval($total_days2 - $i) . '$</span> napon $' . $unknown[1] . '$ órát dolgozott volna, akkor összesen $' . $i . '\\cdot' . $unknown[0] . '+' . strval($total_days2 - $i) . '\\cdot' . $unknown[1] . '=' . $unknown_hour . '$ órát dolgozott volna.';
         }
         if ($diff == 0) {
             $text .= ' Ez pontosan annyi, amennyit az előbb számoltunk, ezért Péter januárban <span class="label label-success">$' . $hours[$unknown[0]] . '$</span> napon dolgozott $' . $unknown[0] . '$ órát, és <span class="label label-success">$' . $hours[$unknown[1]] . '$</span> napon dolgozott $' . $unknown[1] . '$ órát.';
         } else {
             $text .= ' Ez $' . abs($diff) . '$-' . With($diff) . ' ' . ($diff > 0 ? 'kevesebb' : 'több') . ' mint $' . $total2 . '$, tehát ez nem jó megoldás.';
         }
         $page[] = $text;
         if ($diff == 0) {
             break;
         }
     }
     $hints[] = $page;
     return $hints;
 }
Beispiel #26
0
 function Hints($graph, $degrees)
 {
     $size = count($graph);
     $hints[][] = 'Rajzoljunk annyi kört, ahány fős a társaság! Ha két ember ismeri egymást, akkor a nekik megfelelő két kört össze fogjuk kötni. Ha valakinek már minden ismerősét bejelöltük, akkor vele "végeztünk", úgyhogy zöldre színezzük a neki megfelelő kört:' . $this->Graph($graph, 0);
     for ($node = 0; $node < $size - 1; $node++) {
         if (isset($graph[$node])) {
             $prev_degree = 0;
             foreach ($graph as $prev_node => $prev_edges) {
                 if (in_array($node, $prev_edges)) {
                     $prev_degree++;
                 }
                 if ($prev_node == $node) {
                     break;
                 }
             }
             $degree_left = $degrees[$node] - $prev_degree;
             $hints[][] = 'Most vizsgáljuk meg azt a személyt, akinek $' . $degrees[$node] . '$ ismerőse van. Mivel őt ' . ($prev_degree == 0 ? 'még senkivel nem kötöttük össze' : 'már $' . $prev_degree . '$ személlyel összekötöttük') . ($degree_left > 0 ? ', és összesen $' . $degree_left . '$ olyan személy maradt, akivel még nem végeztünk, ez azt jelenti, hogy minden lehetséges emberrel össze kell kötnünk őt:' : ', ez azt jelenti, hogy az összes ismerősét bejelöltük:') . $this->Graph($graph, $node + 1);
         } else {
             $hints[][] = 'Most vizsgáljuk meg azt a személyt, akinek $' . $degrees[$node] . '$ ismerőse van.Mivel őt már $' . $degrees[$node] . '$ emberrel összekötöttük, ez azt jelenti, hogy az összes ismerősét bejelöltük:' . $this->Graph($graph, $node + 1);
         }
     }
     $hints[][] = 'Az ábráról leolvasható, hogy ' . The($size) . ' ' . OrderText($size) . ' személynek <span class="label label-success">$' . $degrees[count($degrees) - 1] . '$</span> ismerőse van.' . $this->Graph($graph, $size);
     return $hints;
 }
 function Hints($a, $b, $c, $x1, $x2, $relation, $no_solutions)
 {
     $page[] = 'Először oldjuk meg az alábbi egyenletet:' . $this->Equation_text($a, $b, $c, $x1, $x2);
     $page[] = '<div class="alert alert-info"><b>Megoldóképlet:</b><br />Az $a\\cdot x^2+b\\cdot x+c=0$ alakú egyenlet megoldásai:$$x_{1,2}=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}$$</div>';
     $hints[] = $page;
     $hints[][] = 'Behelyettesítve a következő kifejezést kapjuk:' . $this->Equation_text($a, $b, $c, $x1, $x2, 1);
     if ($no_solutions == 0) {
         $hints[][] = 'Láthatjuk, hogy a gyökjel alatti kifejezés negatív, ezért ennek a feladatnak <span class="alert alert-success">nincs megoldása</span>.';
     } elseif ($no_solutions == 1) {
         $page = [];
         $page[] = 'Mivel a gyökjel alatti kifejezés értéke $0$, ezért az egyenletnek csak egy megoldása van, az $x=' . $x1 . '$.';
         $page[] = 'Ábrázoljuk az eredeti egyenlőtlenséget grafikonon!';
         $page[] = 'Mivel a kifejezés másodfokú, ezért a képe egy parabola lesz.';
         $page[] = 'Mivel az $x^2$ együtthatója ' . ($a > 0 ? 'pozitív' : 'negatív') . ', ezért a parabola ' . ($a > 0 ? 'fölfelé' : 'lefelé') . ' áll.';
         $page[] = 'Mivel csak egy zérushely van, ezért a parabola csak egy pontban (a zérushelyen) érinti az $x$ tengelyt.';
         $hints[] = $page;
         $hints[][] = 'Ezek alapján már könnyen fel tudjuk rajzolni a grafikon alakját:' . $this->Graph($a, $b, $c, $x1, $x2, $relation);
         switch ($relation) {
             case '\\leq':
                 $hints[][] = 'Mivel csak a nemnegatív ($\\leq0$) értékekre vagyunk kíváncsiak, ezért a megoldás ' . ($a > 0 ? 'csak ' . The($x1) . ' <span class="label label-success">$x=' . $x1 . '$</span> lesz.' : 'az egész számegyenes lesz, azaz <span class="label label-success">$x\\in\\mathbb{R}$</span> (ahol $\\mathbb{R}$ a valós számok halmazát jelöli).') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '<':
                 $hints[][] = 'Mivel csak a negatív ($<0$) értékekre vagyunk kíváncsiak, ezért a feladatnak ' . ($a > 0 ? '<span class="label label-success">nincs megoldása</span> megoldás.' : The($x1) . ' $' . $x1 . '$-' . On($x1) . ' kívül minden szám mgoldása lesz, tehát <span class="label label-success">$x\\neq' . $x1 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '>':
                 $hints[][] = 'Mivel csak a pozitív ($>0$) értékekre vagyunk kíváncsiak, ezért a feladatnak ' . ($a < 0 ? '<span class="label label-success">nincs megoldása</span> megoldás.' : The($x1) . ' $' . $x1 . '$-' . On($x1) . ' kívül minden szám mgoldása lesz, tehát <span class="label label-success">$x\\neq' . $x1 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '\\geq':
                 $hints[][] = 'Mivel csak a nempozitív ($\\geq0$) értékekre vagyunk kíváncsiak, ezért a megoldás ' . ($a < 0 ? 'csak ' . The($x1) . ' <span class="label label-success">$x=' . $x1 . '$</span> lesz.' : 'az egész számegyenes lesz, azaz <span class="label label-success">$x\\in\\mathbb{R}$</span> (ahol $\\mathbb{R}$ a valós számok halmazát jelöli).') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             default:
                 # code...
                 break;
         }
     } elseif ($no_solutions == 2) {
         $page = [];
         $page[] = 'Mivel a gyökjel alatti kifejezés értéke pozitív, ezért az egyenletnek két megoldása van, az $x_1=' . $x1 . '$ és az $x_2=' . $x2 . '$.';
         $page[] = 'Ábrázoljuk az eredeti egyenlőtlenséget grafikonon!';
         $page[] = 'Mivel a kifejezés másodfokú, ezért a képe egy parabola lesz.';
         $page[] = 'Mivel az $x^2$ együtthatója ' . ($a > 0 ? 'pozitív' : 'negatív') . ', ezért a parabola ' . ($a > 0 ? 'fölfelé' : 'lefelé') . ' áll.';
         $page[] = 'Mivel két zérushely van, ezért a parabola két pontban (a zérushelyeken) metszi az $x$ tengelyt.';
         $hints[] = $page;
         $hints[][] = 'Ezek alapján már könnyen fel tudjuk rajzolni a grafikon alakját:' . $this->Graph($a, $b, $c, $x1, $x2, $relation);
         switch ($relation) {
             case '\\leq':
                 $hints[][] = 'Mivel csak a nemnegatív ($\\leq0$) értékekre vagyunk kíváncsiak, ezért a megoldás ' . ($a > 0 ? 'a két zérushely közti értékek lesznek (a végpontokkal együtt), azaz <span class="label label-success">$' . $x1 . '\\leq x\\leq' . $x2 . '$</span> lesz.' : The($x1) . ' $' . $x1 . '$-' . By($x1) . ' kisebb vagy azzal egyenlő, illetve ' . The($x2) . ' $' . $x2 . '$-' . By($x1) . ' nagyobb vagy azzal egyenlő számok lesznek, azaz <span class="label label-success">$x\\leq' . $x1 . '$ vagy $x\\geq' . $x2 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '<':
                 $hints[][] = 'Mivel csak a negatív ($<0$) értékekre vagyunk kíváncsiak, ezért a feladatnak ' . ($a > 0 ? 'a két zérushely közti értékek lesznek (a végpontok nélkül), azaz <span class="label label-success">$' . $x1 . '< x <' . $x2 . '$</span> lesz.' : The($x1) . ' $' . $x1 . '$-' . By($x1) . ' kisebb, illetve ' . The($x2) . ' $' . $x2 . '$-' . By($x1) . ' nagyobb számok lesznek, azaz <span class="label label-success">$x<' . $x1 . '$ vagy $x<' . $x2 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '>':
                 $hints[][] = 'Mivel csak a pozitív ($>0$) értékekre vagyunk kíváncsiak, ezért a feladatnak ' . ($a < 0 ? 'a két zérushely közti értékek lesznek (a végpontok nélkül), azaz <span class="label label-success">$' . $x1 . '< x <' . $x2 . '$</span> lesz.' : The($x1) . ' $' . $x1 . '$-' . By($x1) . ' kisebb, illetve ' . The($x2) . ' $' . $x2 . '$-' . By($x1) . ' nagyobb számok lesznek, azaz <span class="label label-success">$x<' . $x1 . '$ vagy $x<' . $x2 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '\\geq':
                 $hints[][] = 'Mivel csak a nempozitív ($\\geq0$) értékekre vagyunk kíváncsiak, ezért a megoldás ' . ($a < 0 ? 'a két zérushely közti értékek lesznek (a végpontokkal együtt), azaz <span class="label label-success">$' . $x1 . '\\leq x\\leq' . $x2 . '$</span> lesz.' : The($x1) . ' $' . $x1 . '$-' . By($x1) . ' kisebb vagy azzal egyenlő, illetve ' . The($x2) . ' $' . $x2 . '$-' . By($x1) . ' nagyobb vagy azzal egyenlő számok lesznek, azaz <span class="label label-success">$x\\leq' . $x1 . '$ vagy $x\\geq' . $x2 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             default:
                 # code...
                 break;
         }
     }
     return $hints;
 }
Beispiel #28
-1
 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);
 }
Beispiel #29
-1
 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);
 }