スロット期待値の研究

スロットで期待値を算出するためのブログです。

沖ドキ 設定1でモード移行の推移をシミュレーション

沖ドキの設定1でモード移行の推移をシミュレーションするコードをお見せします。

ご自分で試されたい方は以下のコードをRにコピーペーストしてください。

設定1の場合のコードは以下の通りです。言語はRです。

#設定1
#通常A(1)
AA <- 0.6406
AB <- 0.25
AT <- 0.1016
AD <- 0.0078

#通常B(2)
BB <- 0.4922
BT <- 0.4219
BD <- 0.0859

#天国モード(3)
TA <- 0.1328
TB <- 0.0391
TH <- 0.0781
TT <- 0.7422
TD <- 0.0078

#ドキドキモード(4)
DV <- 0.1797
DD <- 0.8164
DS <- 0.0039

#引き戻し(5)
HA <- 0.5000
HB <- 0.3359
HT <- 0.1563
HD <- 0.0078

#スーパードキドキモード(6)
SV <- 0.0937
SS <- 0.9063

#保障モード(7)
VA <- 0.6523
VB <- 0.1016
VH <- 0.2031
VT <- 0.0391
VD <- 0.0039

 

i <- function(n){
e <- 0
m <- 1
cat("A")
repeat{
if(m == 1) z <- c(rep(1, AA*10000), rep(2, AB*10000), rep(3, AT*10000),rep(4,AD*10000))
if(m == 1) repeat{
e <- e + 1
if (e > n) cat("\n")
if (e > n) break
m <- z[sample(1:10000,1)]
if (m == 1) cat("A")
if (m == 2) cat("B")
if (m == 2) break
if (m == 3) cat("T")
if (m == 3) break
if (m == 4) cat("D")
if (m == 4) break
}
if (m == 2) z <- c(rep(2, BB*10000), rep(3, BT*10000),rep(4,BD*10000))
if (m == 2) repeat{
e <- e + 1
if (e > n) cat("\n")
if (e > n) break
m <- z[sample(1:10000,1)]
if (m == 2) cat("B")
if (m == 3) cat("T")
if (m == 3) break
if (m == 4) cat("D")
if (m == 4) break
}
if (m == 3) z <- c(rep(1, TA*10000),rep(2, TB*10000), rep(3, TT*10000),rep(4, TD*10000),rep(5, TH*10000))
if (m == 3) repeat{
e <- e + 1
if (e > n) cat("\n")
if (e > n) break
m <- z[sample(1:10000,1)]
if (m == 1) cat("A")
if (m == 1) break
if (m == 2) cat("B")
if (m == 2) break
if (m == 3) cat("T")
if (m == 4) cat("D")
if (m == 4) break
if (m == 5) cat("H")
if (m == 5) break
}
if (m == 4) z <- c(rep(4, DD*10000), rep(6, DS*10000),rep(7, DV*10000))
if (m == 4) repeat{
e <- e + 1
if (e > n) cat("\n")
if (e > n) break
m <- z[sample(1:10000,1)]
if (m == 4) cat("D")
if (m == 6) cat("S")
if (m == 6) break
if (m == 7) cat("V")
if (m == 7) break
}
if (m == 5) z <- c(rep(1, HA*10000), rep(2, HB*10000),rep(3, HT*10000),rep(4, HD*10000))
if (m == 5) repeat{
e <- e + 1
if (e > n) cat("\n")
if (e > n) break
m <- z[sample(1:10000,1)]
if (m == 1) cat("A")
if (m == 1) break
if (m == 2) cat("B")
if (m == 2) break
if (m == 3) cat("T")
if (m == 3) break
if (m == 4) cat("D")
if (m == 4) break
}
if (m == 6) z <- c(rep(6,SS*10000), rep(7, SV*10000))
if (m == 6) repeat{
e <- e + 1
if (e > n) cat("\n")
if (e > n) break
m <- z[sample(1:10000,1)]
if (m == 6) cat("S")
if (m == 7) cat("V")
if (m == 7) break
}

if (m == 7) z <- c(rep(1, VA*10000), rep(2, VB*10000),rep(3, VT*10000),rep(4, VD*10000),rep(5, VH*10000))
if (m == 7) repeat{
e <- e + 1
if (e > n) cat("\n")
if (e > n) break
m <- z[sample(1:10000,1)]
if (m == 1) cat("A")
if (m == 1) break
if (m == 2) cat("B")
if (m == 2) break
if (m == 3) cat("T")
if (m == 3) break
if (m == 4) cat("D")
if (m == 4) break
if (m == 5) cat("H")
if (m == 5) break
}
if (e > n) break
}
}

 

コードは以上です。ちなみにチェリーとスイカから上がった場合の移行率は含まれていないので、実際はもう少し甘目です。

 

f:id:b092203w:20190602024557p:plain

設定1で70回モード移行した場合の推移

上の画像ではRで70回モード移行した場合の推移で、Aというのは通常A、Bは通常B、Tは天国、Dはドキドキ、Hは引き戻し、Vは保証モードをさしています。上の画像では出てきませんでしたが、実際にRでシミュレーションした時にSが出てきたら、Sはスーパードキドキです。

上の画像は、最初は通常Aで始まり、次は一発で天国に上がり、即落ちしてまた通常Aが2回続いた後に天国7連して通常Aに転落、というような流れになっています。

案外通常Aから天国に上がるケースも少なくありませんが、5回、6回はまってるところもありますよね。

シミュレーションしてみると、AからAに移行する確率は約64%だから2回3回ハマれば上がると思いきや、実際は1発で上がったり、4回も5回もはまっていて実データは理論値よりもかなり汚くて偏っていることが見て取れます。Bから天国に上がるのも同様で、こちらはAよりは偏ってませんが、それでも2回ハマっている(”BBB"となっている箇所)のもちらほらですね。

沖ドキではいかにAを打たずにBを打つのが大事ですが、次回以降の記事ではではどうやって実際にはBを見つけるのか書いていきたいと思います。

f:id:b092203w:20190602103138p:plain

Bでも8回ハマります。怖い!