定理3 一日のうち子役高確率中であるのは全体の14.2%(親父打ち)


定理2で使ったプログラムに新しいメソッド「torikoboshi(取りこぼし)」を導入して

またまたチャチャッと1億回実行するだけです。

取りこぼしが起きる確率はjug7.comのココの数値を使っております。

hoshinanaさんには感謝感謝です。






class sub{

static double number = 0;//子役抽選に使用します
static int pay = 0;//ペイアウト枚数
static int oyaji = 0;//親父打ちでの取りこぼし判定(0ははずれ1は当たり)

static int high(){//子役高確率
number = Math.random();//抽選をします。

if (number<=2245/16284.0){
pay = -1;}//リプレイ
else if(number<=6245/16284.0){
oyaji = sub.nichetorikoboshi();
pay = 2*oyaji;}//2チェリー
else if(number<=8245/16284.0){
oyaji = sub.yonchetorikoboshi();
pay = 4*oyaji;}//4チェリー
else if(number<=10096/16284.0){
pay = 7;}//ぶどう
else if(number<=10796/16284.0){
oyaji = sub.pierotorikoboshi();
pay = 10*oyaji;}//ピエロ
else if(number<=11396/16284.0){
oyaji = sub.belltorikoboshi();
pay = 15;}//ベル
else if(number<=11464/16284.0){
pay = 99;}//ビッグ
else if(number<=11509/16284.0){
pay = 15;}//レギュラー
else{
pay = 0;}//ばすれ

return pay;//払い出し枚数を返します
}



static int low(){//子役低確率
number = Math.random();//抽選をします

if (number<=2245/16284.0){
pay = -1;}//リプレイ
else if(number<=2527/16284.0){
oyaji = sub.nichetorikoboshi();
pay = 2*oyaji;}//2チェリー
else if(number<=2937/16284.0){
pay = 4;}//4チェリー
else if(number<=4787/16284.0){
pay = 7;}//ぶどう
else if(number<=4837/16284.0){
oyaji = sub.pierotorikoboshi();
pay = 10*oyaji;}//ピエロ
else if(number<=4887/16284.0){
oyaji = sub.belltorikoboshi();
pay = 15*oyaji;}//ベル
else if(number<=4955/16284.0){
pay = 99;}//ビッグ
else if(number<=5000/16284.0){
pay = 15;}//レギュラー
else{
pay = 0;}//ばすれ

return pay;//払い出し枚数を返します

}

static int nichetorikoboshi(){//2枚チェリーの取りこぼし判定
number = Math.random();
if(number <= 10/21.0){
oyaji = 1;}
else{
oyaji = 0;}
return oyaji;
}
static int yonchetorikoboshi(){//4枚チェリーの取りこぼし判定
number = Math.random();
if(number <= 14/21.0){
oyaji = 1;}
else{
oyaji = 0;}
return oyaji;
}
static int pierotorikoboshi(){//ピエロの取りこぼし判定
number = Math.random();
if(number <= 1700/9261.0){
oyaji = 1;}
else{
oyaji = 0;}
return oyaji;
}
static int belltorikoboshi(){//ベルの取りこぼし判定
number = Math.random();
if(number <= 198/441.0){
oyaji = 1;}
else{
oyaji = 0;}
return oyaji;
}
}

public class jug4{
public static void main(String[] args) {

int n = 100000000;//試行ゲーム数
int m = 0; //高確率だったゲーム数
int l = 0; //低確率だったゲーム数
int big = 0; //ビッグ回数をカウント
int haraidasi = 0;//1ゲームでの払い出し枚数
int out = 0;//BBを引くまでの総アウト枚数
int in = 0;//BBを引くまでの総イン枚数
double ratio1 = 0;//実際に投入に対して払いだした割合
double ratio2 = 104/256.0;//子役高確率の境界

for(int play = 1; play<=n; play++){
if(haraidasi>=0){
in += 3;//リプレイでないならば3枚投入します
}

ratio1 = (double)out/in;//ペイ率の計算

if(ratio1<ratio2){//子役高確率の場合
haraidasi = sub.high();
m++;}
else{ //子役低確率の場合
haraidasi = sub.low();
l++;}


if(haraidasi == 99){//ビッグならカウンタをリセットしビッグ回数をカウント
in = 0;
out = 0;
big++;
}
else if(haraidasi == -1){//リプなら何もしない
}
else{//そのほかの場合はPayout枚数を増やす。
out += haraidasi;
}
System.out.println("game"+play+"in="+in+" out="+out+" haraidasi="+haraidasi+" 高確率="+m+" 低確率="+l+"");
}


System.out.println("実行回数は"+n+"回で、高確率は"+m+"回だったので");
System.out.println("高確率割合は"+(double)m/n*100+"%です。");
System.out.println("ちなみにBig実戦確率は"+(double)n/big+"です");
}
}



実行結果より

一日のうち子役高確率中であるのは全体の14.2%


これも設定6を仮定しているのでその他の設定ではもう少し少なくなる(14.0%程度)と思われます。