パチスロ天井期待値計算ツールを作ってみた
作った経緯
※この記事はPCで読むことをおすすめします
毎回の天井期待値の記事投稿でhlmlを書くのが面倒だったので天井期待値計算ツールを作ってみました。
条件式などは結構適当なので指摘などあればコメント頂けると嬉しいです。
また、他にもこんな機能が欲しいなんて要望もお待ちしています。
今回はc言語で書いてみました。
要望があれば暇なときにでもブラウザ上で動作するように作り直そうかな…
他のブログ等で解析に使った場合はこの記事へのリンクをお願いします。
当記事はリンクフリーです
とりあえず下にソースコードを貼っておきます。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
#include<stdio.h> int main() { int game;//天井ゲーム数 int hcoin;//初当たり期待枚数 int tcoin;//天井到達時期待枚数 double kakuritu1;//初当たり確率(入力) double kakuritu;//初当たり確率 double base; int i,j,k; double temp; double temp2; double temp3; double temp4; printf("天井ゲーム数を入力してください:"); scanf("%d",&game); printf("初当たり期待枚数を入力してください:"); scanf("%d",&hcoin); printf("天井到達時の期待枚数を入力してください:"); scanf("%d",&tcoin); printf("初当たり確率を入力してください:"); scanf("%lf",&kakuritu1); printf("ベースを入力してください:"); scanf("%lf",&base); //デバッグ用 //printf("%d %d %d %f\n",game,hcoin,tcoin,kakuritu1,base); kakuritu = 1/kakuritu1; //printf("確率は %lf\n",kakuritu); double toutaturitu[game]; double toushi[game]; double kaisyu[game]; double kitaichi[game]; double ararumade[game];//当たるまでの平均ゲーム数 for(i=0;i<game;i++){ temp=1; for(j=i;j<game;j++){ temp=temp*(1-kakuritu); } toutaturitu[i]=temp; //デバッグ用 //printf("%d G目での天井到達率は %lf\n",i,temp); } temp2=0; temp3=0; for(i=1;i<game;i++){ temp=kakuritu; for(j=1;j<i;j++){ temp=temp*(1-kakuritu); } temp2=temp2+(temp*i); temp3=temp3+temp; //printf("%d G目で当たる確率は %lf\n",i,temp); } temp4=temp2+(toutaturitu[0]*game); printf("天井以外で当たるまでの平均ゲーム数は %lf\n",temp2); printf("天井までの累積確率は %lf\n天井到達率は %lf\n",temp3,toutaturitu[0]); printf("初当たり確率は 1/%lf\n",temp4); printf("--------------------------------\n<table border>\n"); printf("<tr>\n<td>ゲーム数</td>\n"); printf("<td>天井以外で当たるまでの平均ゲーム数</td>\n"); printf("<td>当たるまでの平均ゲーム数</td>\n"); printf("<td>平均投資額</td>\n"); printf("<td>平均回収額</td>\n"); printf("<td>期待値</td>\n</tr>"); for(i=0;i<game;i=i+100){ temp2=0; temp3=0; temp4=0; for(j=(i+1);j<game;j++){ temp=kakuritu; for(k=(i+1);k<j;k++){ temp=temp*(1-kakuritu); } temp2=temp2+(temp*(j-i)); } temp3=temp2+((game-i)*toutaturitu[i]); toushi[i]=(temp3/base)*1000; kaisyu[i]=((toutaturitu[i]*tcoin)+((1-toutaturitu[i])*hcoin))*20; kitaichi[i]=kaisyu[i]-toushi[i]; printf("<tr>\n<td>%d</td>\n",i); printf("<td>%lf</td>\n",temp2); printf("<td>%lf</td>\n",temp3); printf("<td>%lf</td>\n",toushi[i]); printf("<td>%lf</td>\n",kaisyu[i]); printf("<td>%lf</td>\n</tr>\n",kitaichi[i]); } printf("</table>\n"); printf("シミュレート条件\n"); printf("天井ゲーム数:%d\n",game); printf("初当たり期待枚数:%d\n",hcoin); printf("天井期待枚数:%d\n",tcoin); printf("初当たり確率:1/%lf\n",kakuritu1); printf("ベース:1000円あたり%lfG\n",base); printf("\n"); return 0; } |
使い方
・c言語のコンパイルなんて余裕だぜって方はそのまま勝手にコンパイルして実行してやってください
・c言語?なにそれ?って方は…
まずこちらのサイトhttp://ideone.com/にアクセスします。
上の画像のような感じになると思うので、赤でくくったところにソースコードをはりつけます。
次に青でくくったところの「choose language」で「c」を選択します。
最後に、真ん中の「enter input (stdin) 」ってところ(広告の上)に
1600
500
1750
400
30
って感じで
・天井ゲーム数
・初当たり期待枚数
・天井期待枚数
・初当たり確率
・ベース
を入力します。
上のようになったら緑色の「Run」ボタンを押して実行します。
上記の条件で実行してみた例
ゲーム数 | 天井以外で当たるまでの平均ゲーム数 | 当たるまでの平均ゲーム数 | 平均投資額 | 平均回収額 | 期待値 |
0 | 363.478647 | 392.637266 | 13087.908864 | 10455.603428 | -2632.305436 |
100 | 355.437597 | 390.548969 | 13018.298970 | 10585.189529 | -2433.109441 |
200 | 345.776898 | 387.868372 | 12928.945735 | 10751.633470 | -2177.312265 |
300 | 334.225714 | 384.427483 | 12814.249432 | 10965.418630 | -1848.830802 |
400 | 320.490176 | 380.010663 | 12667.022116 | 11240.010148 | -1427.011969 |
500 | 304.262182 | 374.341115 | 12478.037176 | 11592.703019 | -885.334156 |
600 | 285.235077 | 367.063534 | 12235.451120 | 12045.711410 | -189.739710 |
700 | 263.129400 | 357.721841 | 11924.061379 | 12627.567803 | 703.506424 |
800 | 237.733165 | 345.730608 | 11524.353603 | 13374.920101 | 1850.566498 |
900 | 208.962846 | 330.338363 | 11011.278756 | 14334.839877 | 3323.561120 |
1000 | 176.953610 | 310.580501 | 10352.683373 | 15567.787145 | 5215.103772 |
1100 | 142.190470 | 285.218838 | 9507.294613 | 17151.418408 | 7644.123796 |
1200 | 105.696370 | 252.664015 | 8422.133838 | 19185.477807 | 10763.343969 |
1300 | 69.298946 | 210.875899 | 7029.196647 | 21798.079446 | 14768.882799 |
1400 | 36.005527 | 157.235739 | 5241.191311 | 25153.776597 | 19912.585287 |
1500 | 10.526353 | 88.382057 | 2946.068570 | 29463.925990 | 26517.857420 |
シミュレート条件
天井ゲーム数:1600
初当たり期待枚数:500
天井期待枚数:1750
初当たり確率:1/400.000000
ベース:1000円あたり30.000000G
現在月々の携帯料金を安くする方法を配信中
携帯料金などの通信費を安くする為の方法をわかりやすく解説!MNPって何?
話題の格安SIMってどうなの?
月々の通信料金を安くしたい
一つでもあてはまった方は是非ご覧ください良かったら今日もポチっとお願いします^^
- - - - -スポンサードリンク- - - - -
最近のコメント