bestof_gui_3.php
po grafickej stranke to mozte trochu zmenit, aby to nevyzeralo, ze je to robene narychloKód:<?php $pA = $_GET["pA"]; // 0.75 $pB = $_GET["pB"]; // 0.25 if($pA>1) $pA = 1/$pA; if($pB>1) $pB = 1/$pB; $bestof = $_GET["bestof"]; // 7 $nwin = round($bestof/2 + 0.5); $h = $_GET["h"]; $sv = $_GET["sv"]; $sv10 = base_convert($sv, 2, 10); $s=$sv10<<($bestof-strlen($sv)); while($s<($sv10+1)<<($bestof-strlen($sv))) { $prob = 1; $wA = $wB = 0; for($i=$bestof-1; $i>=0 && $wA<$nwin && $wB<$nwin; $i--) { $res = ($s>>$i)&1; if($i<$bestof-strlen($sv)) $prob *= $res ? ($h[$bestof-1-$i]=='h' ? $pA : $pB) : ($h[$bestof-1-$i]=='h' ? 1-$pA : 1-$pB); if($res) $wA++; else $wB++; } $sres[$wA.":".$wB] += $prob; if($wA>$wB) $probA += $prob; $s += 1<<($bestof-$wA-$wB); } ?> zmenil som to druhe pole, aby to nemylilo - vsetko je teraz z pohladu timu A <form> <table> <tr> <td><input type="text" name="pA" value="<?php echo $pA?>"></td> <td>pA</td> <td>pravdepodobnost, ze A vyhra zapas A-B (A je doma) (napr. 0.75) - alebo fair kurz </td> </tr> <tr> <td><input type="text" name="pB" value="<?php echo $pB?>"></td> <td>pB</td> <td>pravdepodobnost, ze A vyhra zapas B-A (B je doma) (napr. 0.55) - alebo fair kurz</td> </tr> <tr> <td><input type="text" name="bestof" value="<?php echo $bestof?>"></td> <td>bestof</td> <td>maximalny pocet zapasov v serii (napr. 7)</td> </tr> <tr> <td><input type="text" name="h" value="<?php echo $h?>"></td> <td>seria</td> <td>h - doma, a - vonku (napr. hhaaahh znamena seriu 2-3-2)</td> </tr> <tr> <td><input type="text" name="sv" value="<?php echo $sv?>"></td> <td>sv</td> <td>uz odohrane zapasy (1 - A vyhral, 0 - A prehral; napr. 110 - A vyhral dva zapasy, treti prehral, teraz sa ide hrat stvrty)</td> </tr> </table> <input type="submit"> </form> <table> <tr> <th>vysledok</th> <th>pravdepodobnost</th> <th>kurz</th> </tr> <?php foreach($sres as $res=>$prob) { ?> <tr> <td><?php echo $res;?></td> <td><?php echo $prob;?></td> <td><?php echo round(1/$prob,2);?></td> </tr> <? } ?> </table> <?php echo "Pravdepodobnost, ze A vyhra celu seriu: $probA (".round(1/$probA,2).")"; ?>







Odpověď s citací