bestof_gui_3.php

Kó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).")";

?>
po grafickej stranke to mozte trochu zmenit, aby to nevyzeralo, ze je to robene narychlo