Esempio n. 1
20
 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)
 {
     $q_no = rand(4, 8);
     $opts_no = rand(2, 5);
     $ppl = rand(7, 13);
     $opts_text = range(chr(65), chr(65 + $opts_no - 1));
     $max_points = $ppl * $q_no;
     $points = rand(1, floor($max_points / 5)) * 5;
     $rand = rand(1, 2);
     // // Original exercise
     // $q_no = 6;
     // $opts_no = 3;
     // $ppl = 10;
     // $points = 35;
     // $rand = 1;
     if ($rand == 1) {
         $type = 'jó';
         $rate = $points / $max_points;
         $correct = round($points / $max_points * 360);
     } else {
         $type = 'rossz';
         $rate = 1 - $points / $max_points;
         $correct = round((1 - $points / $max_points) * 360);
     }
     $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. 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. Ha az összes jó és az összes rossz válasz számából kördiagramot készítünk, mekkora körcikk szemlélteti a ' . $type . ' válaszok számát? <i>(Válaszát egész fokokra kerekítve adja meg!)</i>' . $this->PieChart();
     $solution = '$' . $correct . '°$';
     $page[] = 'Ha minden diák minden kérdésre jól válaszolt volna, összesen $' . $ppl . '\\cdot' . $q_no . '=' . $max_points . '$ pontot szerzett volna.';
     $page[] = 'A ' . NumText($ppl) . ' diák összesen $' . $points . '$ pontot szerzett, ezért a jó válaszok száma $' . $points . '$, a rossz válaszok száma pedig $' . strval($max_points - $points) . '$.';
     $page[] = 'A ' . $type . ' válaszok aránya: $$\\frac{' . ($type == 'jó' ? $points : $max_points - $points) . '}{' . $max_points . '}' . (round1($rate) == $rate ? '=' : '\\approx') . round2($rate) . '$$';
     $page[] = 'Ezért a kördiagramon a ' . $type . ' válaszokhoz tartozó körcikk nagysága egész fokokra kerekítve $\\frac{' . ($type == 'jó' ? $points : $max_points - $points) . '}{' . $max_points . '}\\cdot360°' . ($rate * 360 == $correct ? '=' : '\\approx') . '$<span class="label label-success">$' . $correct . '$</span>$°$.' . $this->PieChart($correct);
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints, 'labels' => ['right' => '$°$']);
 }
Esempio n. 3
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);
 }