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


source : ハマリからの設定推測


#!/usr/bin/perl
# ハマリから設定推測

$cginame = 'hamari.cgi';
$title   = 'ハマリからの設定推測';

if ($ENV{'REQUEST_METHOD'} eq 'POST') {
    read (STDIN, $input, $ENV{'CONTENT_LENGTH'});
} else {
    # デフォルトではジャグラーの値
    @input = (297.891, 655.360, 273.067, 630.154, 260.063, 606.815,
              244.537, 546.133, 240.941, 468.114, 240.941, 364.089);
}
foreach $str (split(/&/,$input)) {
    ($name,$value) = split(/=/, $str);
    push(@input, $value);
}
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'>
<div align='right'>[ <a href='hamari_memo.html'>memo</a> / <a href='hamari.html'>source</a> / <a href='../index.html'>home</a> ]</div>
<br><br>
<div align='center'><h2>$title</h2></div>
<hr width='70%'><center>
<form action='$cginame' method='POST'>
<table border=0>
<tr><td>設定1でのBIG確率</td><td>1/<input type='text' size=8 name='s1b' value='$input[0]'>
 設定1でのREG確率 1/<input type='text' size=8 name='s1r' value='$input[1]'></td></tr>
<tr><td>設定2でのBIG確率</td><td>1/<input type='text' size=8 name='s2b' value='$input[2]'>
 設定2でのREG確率 1/<input type='text' size=8 name='s2r' value='$input[3]'></td></tr>
<tr><td>設定3でのBIG確率</td><td>1/<input type='text' size=8 name='s3b' value='$input[4]'>
 設定3でのREG確率 1/<input type='text' size=8 name='s3r' value='$input[5]'></td></tr>
<tr><td>設定4でのBIG確率</td><td>1/<input type='text' size=8 name='s4b' value='$input[6]'>
 設定4でのREG確率 1/<input type='text' size=8 name='s4r' value='$input[7]'></td></tr>
<tr><td>設定5でのBIG確率</td><td>1/<input type='text' size=8 name='s5b' value='$input[8]'>
 設定5でのREG確率 1/<input type='text' size=8 name='s5r' value='$input[9]'></td></tr>
<tr><td>設定6でのBIG確率</td><td>1/<input type='text' size=8 name='s6b' value='$input[10]'>
 設定6でのREG確率 1/<input type='text' size=8 name='s6r' value='$input[11]'></td></tr>
</table><br>
<input type='submit' value="計算開始">
</form>
デフォルトではジャグラー系の数値が入力されています。
</center><br><br>
__ HTML __


# エラーチェック と GETでの送信
foreach $str (@input) {
    if (!$str) { $error = 1; $er_msg = '記入漏れがあります。'; }
    if ($str =~ /[^\d\.]/) { $error = 1; $er_msg = '不適切な文字が入力されています。'; }
}
if ($ENV{'REQUEST_METHOD'} ne 'POST') { $error = 1; $er_msg = 0; }

if ($er_msg) {
    print q{<center><b><font color='red' size=4>*** ERROR !! ***</font><br><br>},"\n";
    print "$er_msg</b></center>\n";
}
if ($error) {
    print '<br><br><br><br><br>';
    print q{<div align='right'>[ <a href='hamari_memo.html'>memo</a> / <a href='hamari.html'>source</a> / <a href='../index.html'>home</a> ]</div>};
    exit;
}

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

# @data には BIG確率, REG確率, BR合成確率の分母が設定順に入る
for ($x=0; $x<=10; $x=$x+2) {
    $comp = 1/(1/$input[$x] + 1/$input[$x+1]);
    push(@data, $input[$x]);
    push(@data, $input[$x+1]);
    push(@data, $comp);
}

@per = (0.95, 0.9, 0.7, 0.5, 0.2, 0.1, 0.05, 0.025);

print q{<table border=1 align='center' cellpadding=4 cellspacing=0>},"\n";
print q{<tr bgcolor='#ffffee'><td> </td><td> </td><td colspan=8 align='center'>表\のプレイ数までに当選する確率</td></tr>},"\n";
print q{<tr bgcolor='#ffffee' align='center'><td> </td><td> </td><td><b>5%</td><td><b>10%</td><td><b>30%</td><td><b>50%</td>};
print q{<td><b>80%</td><td><b>90%</td><td><b>95%</td><td><b>97.5%</td></tr>},"\n";

for ($i=0; $i<=$#data; $i++) {

    $bg = (($i<=2) or ($i>5 && $i<=8) or ($i>11 && $i<=14)) ? '#ffffcc' : '#ffffee';  # bgcolor

    if ($i%3 == 0) {
        $s = $i/3+1; $clr = 'blue';
        print "<tr align='right' bgcolor='$bg'><td rowspan=3><b>設定 $s</b></td><td>BIG のみ</td>";
    } elsif ($i%3 == 1) {
        $clr = 'black'; print "<tr align='right' bgcolor='$bg'><td>REG のみ</td>";
    } else {
        $clr = 'red'; print "<tr align='right' bgcolor='$bg'><td>BR 合成</td>";
    }


    for ($j=0; $j<=$#per; $j++) {
        $game = int(log($per[$j])/log(($data[$i]-1)/$data[$i])+0.5) + 1;  # log の計算
        print "<td><font color='$clr'>$game P</font></td>";
    }
    print '</tr>',"\n";
}


# コメントとフッタの表示
print <<"__ HTML __";
<tr align='center' bgcolor='#ffffcc'><td> </td><td> </td><td><b>5%</td><td><b>10%</td><td><b>30%</td><td><b>50%</td>
<td><b>80%</td><td><b>90%</td><td><b>95%</td><td><b>97.5%</td></tr>
</table><br><br>

<table border=0 align='center' width='60%'>
<tr><td>
\表\のBR合成で、90%に対応する数値が 300 だとすると、90%の確率で300Pまでに
BIG or REG を引けるということです。(ただし、残りの10%で300Pを超えてしまいます。)<br>
<br>
設定5 のBR合成の 90% の値が 300 , 95% の値が 390 の場合、300Pでノーボーナスだと
90%の確かさで設定5を棄却、390Pでノーボーナスだと95%の確かさで設定5を棄却できると
アバウトながら判断できます。<br>
あくまでも目安にしてください(初期投資時など)。
</td></tr></table>
<br><br><br>

<div align='right'>[ <a href='hamari_memo.html'>memo</a> / <a href='hamari.html'>source</a> / <a href='../index.html'>home</a> ]</div>
</body></html>
__ HTML __

exit;


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