jug7.com
[ home / cgi / juggler / column / diary / bbs / link / welcome ]


source : 2027 JAC中 設定推測


#!/usr/bin/perl
# 2027 JAC中 設定推測(暫定版)

$cginame = '2027_jac.cgi';
$title   = '2027 JAC中 設定推測 (暫定版)';

if ($ENV{'REQUEST_METHOD'} eq 'POST') {
    read (STDIN, $input, $ENV{'CONTENT_LENGTH'});
}
foreach $str (split(/&/,$input)) {
    ($name,$value) = split(/=/, $str);
    push(@input, $value);
}
($play, $sister, $master, $penta) = @input;

print "Content-Type: text/html\n\n";


# ヘッダとフォームの表示
print <<"__ HTML __";
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html lang='ja'>
<head>
<meta http-equiv='Content-Type' content="text/html; charset=shift_jis">
<title>jug7.com - cgi $title</title>
 <style type="text/css"> <!--
   A:hover {color:#ff0000;}
 --></style>
</head>
<body text='#000000' bgcolor='#ffffff' link='#0000ff' alink='#ff0000' vlink='#0000cc'>
<hr>
<b>$title</b><br>
<form action='$cginame' method='POST'>
JAC 回数 <input type='text' size=6 name='play' maxlength=5 value='$play'><br>
鳴海姉妹 <input type='text' size=3 name='sister' maxlength=4 value='$sister'><br>
マスター  <input type='text' size=3 name='master' maxlength=4 value='$master'><br>
ペンタ   <input type='text' size=3 name='penta' maxlength=4 value='$penta'><br>
<br>
考慮しない場合は空欄。ゼロなら 0 と記入。<br>
全設定が均等に設置という仮定のもとに計算。<br>

<input type='submit' value="開始">
</form>
__ HTML __


# エラーチェックとGET送信
if ($ENV{'REQUEST_METHOD'} ne 'POST') {
    print '<a href=\'2027_jac_memo.html\'>memo</a> <a href=\'2027_jac.html\'>source</a> <a href=\'../index.html\'>top へ戻る</a>',"\n",'</body></html>';
    exit;
}
if($play > 19999) {
    print '<center><font size=4 color=\'red\'><b>ERROR ! (プレイ数制限)</b></font></center>';
    print '<a href=\'2027_jac_memo.html\'>memo</a> <a href=\'2027_jac.html\'>source</a> <a href=\'../index.html\'>top へ戻る</a>',"\n",'</body></html>';
    exit;
}

# 2027_JAC data   1/x 雑誌での実戦データ(暫定版)

@sister  = ('14.085', '14.085', '9.174', '14.085', '6.667', '8.475');
@master  = ('28.571', '14.085', '13.699', '6.993', '8.850', '7.246');
@penta  = ('6.211', '11.236', '9.174', '18.519', '10.989', '31.250');

#------------
#  計算開始
#------------

$sis_prob   = &point(($play/$sister), 3) if $sister;
$mas_prob   = &point(($play/$master), 3) if $master;
$pen_prob   = &point(($play/$penta),  3) if $penta;

for ($i=0; $i<=5; $i++) {
    $p_total = 1;
    if ($sister ne '') {
        $p_sister = (1/$sister[$i])**$sister * (1-1/$sister[$i])**($play-$sister); $p_total *= $p_sister;
    }
    if ($master ne '') {
        $p_master = (1/$master[$i])**$master * (1-1/$master[$i])**($play-$master); $p_total *= $p_master;
    }
    if ($penta ne '') {
        $p_penta = (1/$penta[$i])**$penta * (1-1/$penta[$i])**($play-$penta); $p_total *= $p_penta;
    }

    $p_total2 += $p_total;
    push(@p_total, $p_total);
}
# 百分率にする
for ($i=0; $i<=5; $i++) {
    $per = &point(($p_total[$i]/$p_total2*100), 2) if $p_total2;
    push(@per, $per);
}

# 結果の表示
for ($i=1; $i<=6; $i++) { print "設 $i -&gt; $per[$i-1] %<br>\n"; }
if ($check) { print '# (評価不可能)',"\n"; }

print '<a href=\'2027_jac_memo.html\'>memo</a> <a href=\'2027_jac.html\'>source</a> <a href=\'../index.html\'>top へ戻る</a><hr>',"\n",'</body></html>';


exit;

# 少数を四捨五入して指定の桁にする
sub point {
    my($value, $fig, $x);
    ($value, $fig) = @_;

    $value = int($value * (10 ** $fig) + 0.5) / (10 ** $fig);
    if ($value =~ /(\d+)\.(\d+)/) { $x = $2; }
    elsif ($value !~ /\./)        { $x =''; $value .= '.'; }
    $value = $value.'0' x ( $fig - length($x) );
    return $value;
}


[ home / cgi / juggler / column / diary / bbs / link / welcome ]