RM-BLOG

IT系技術職のおっさんがIT技術とかライブとか日常とか雑多に語るブログです。* 本ブログに書かれている内容は個人の意見・感想であり、特定の組織に属するものではありません。/All opinions are my own.*

ストレイテナーと確率6(3の続き)

ストレイテナーと確率3(「CLONEをよく耳にする」のは事実なのか?)の続き。

前回は「CLONE」という曲だけに着目したが、これを別の曲にしたときの考察を実施してみる。
手持ちのストレイテナー全257曲の中で、インスト除くと3つある「CLONE」は、
1つ目:平均64曲目、2つ目:平均128曲目、3つ目:平均192曲目
にそれぞれ選択されるということが前回の検証でわかっている。
CLONEは重複度3だったが、重複度が異なる別の曲だとどういう結果になるのか?
を試してみたくなった。

前回の結果を見て疑問に思ったのは、
1つ目:平均64曲目
2つ目:平均128曲目
3つ目:平均192曲目
というように、その差がきれいに64になっていることだった。
CLONEの重複度は3だから、
他の重複度の曲でやるとどうなるのか?実験してみたい。
ちなみにCLONE前提で考えていたので「どの曲か」の判定文字列はソースコードにべた書きしている。
ちょっと直してコンパイルかけるだけだからそれほど苦でもないが
こういう検証をするにあたっては外部から引数等でもらうつくりにした方が良かったなと感じた。(だが直さない)
※ただ、「ストレイテナーと確率3」で使用した検証用プログラムにおける
 1試行結果を書き出す処理「(3)シミュレーション メイン処理」は
 曲が可変(つまり重複度が可変)になることを想定してListを使用していたので
 曲名部分の固定値を変えるだけで対応可能にはなっている



 

 

まずは重複度1の曲から。
なんでもいいのだがこれには「氷の国の白夜」が思いついたのでそれを選択。
ぱっと思いついたのがこれだけだったのであって、特別選択肢に意味はない。
(どうでもいいけどこの曲の「氷の国」感はスゴイと思う)
結果は以下の通りとなった↓

曲順記録(1)
平均:128
最大:256
最小:1
======================================================
演奏時間記録(1)
平均:08:00:47
最大:16:02:32
最小:00:00:00
======================================================


ほう…?
では次。



次は重複度2の曲。
これには「シンクロ」を選択させていただいた。
これも選択に特に意味はない。ぱっと思いついただけである。
結果は以下の通りとなった↓

曲順記録(1)
平均:85
最大:255
最小:1
======================================================
演奏時間記録(1)
平均:05:20:23
最大:15:57:35
最小:00:00:00
======================================================
曲順記録(2)
平均:171
最大:256
最小:2
======================================================
演奏時間記録(2)
平均:10:44:57
最大:16:02:16
最小:00:04:41
======================================================


ふむ。
ここまで来るとなんとなく法則性が見えてくる。



重複度3はCLONEでそれを既に取り扱っているので、次は重複度4の曲。
ストレイテナーと確率5ではその重複度を見直したが、
旧版の楽曲リスト読込プログラムでは重複度4と見なされる「SIX DAY WONDER」を採用する。
結果は以下の通りとなった↓

曲順記録(1)
平均:51
最大:240
最小:1
======================================================
演奏時間記録(1)
平均:03:10:06
最大:15:07:46
最小:00:00:00
======================================================
曲順記録(2)
平均:102
最大:251
最小:2
======================================================
演奏時間記録(2)
平均:06:24:09
最大:15:43:51
最小:00:03:50
======================================================
曲順記録(3)
平均:154
最大:255
最小:4
======================================================
演奏時間記録(3)
平均:09:38:07
最大:15:59:17
最小:00:12:31
======================================================
曲順記録(4)
平均:205
最大:256
最小:15
======================================================
演奏時間記録(4)
平均:12:52:32
最大:16:03:07
最小:00:55:25
======================================================


なるほど。




結果をまとめると以下のようになる。

重複度選択楽曲1つ目2つ目3つ目4つ目

氷の国の白夜(STRAIGHTENER収録) 128
シンクロ(SOFT、ベスト収録) 85 171
CLONE(シングル、CREATURES、ベスト収録) 64 128 192
SIX DAY WONDER(シングル、LINEAR、SOFT、ベスト版) 51 102 154 205



ここから考え付くのは
重複度がmのとき、全曲数÷(m+1)をkとして、kの整数倍の値で平均的に呼ばれる曲順が決定する
という理屈だろう。
たとえばCLONEは重複度3なので、257÷(3+1)=64.25、よって64.25の倍数のときに選択される(64、128、192)
SIX DAY WONDERは重複度4なので、257÷(4+1)=51.4、よって51.4の倍数のときに選択される(51、102、154※51.4×3=154.2、205※51.4×4=205.6



ところで、前回の検証において「1つ目のCLONEが選ばれる確率」として考えた以下の計算式

n曲目に選ばれるときは、(254Pn-1/257Pn-1)*3/(257-n+1)(1≦n≦257、Pはパーミュテーション)

だが、上記の計算式は、より一般的には重複度mを用いて

n曲目に選ばれるときは、(257-mPn-1/257Pn-1)*m/(257-n+1)(1≦n≦257、Pはパーミュテーション)

という形になる。

これをもとにすると、少なくとも「1つ目」の方は、
重複度mに楽曲の重複度、及びnに上記の「1つ目」の結果(平均選択曲順)を代入することで
その確率を計算することが出来る。
並べてみると

重複度選択楽曲1つ目の確率(平均選択曲順)

氷の国の白夜(STRAIGHTENER収録) 0.498054475(128)
シンクロ(SOFT、ベスト収録) 0.552954767(85)
CLONE(シングル、CREATURES、ベスト収録) 0.578130007(64)
SIX DAY WONDER(シングル、LINEAR、SOFT、ベスト版) 0.589606663(51)

となる。


シングルとしての重複度は最大4のSIX DAY WONDER(それもSOFT込み)が限界だが、
ここでは仮想的に重複度をもっと増やして先の方だとどうなるか考察してみる。
例えば重複度5だとすると、平均選択曲順は257/(5+1)=42.8333…となるので、42~43曲目付近で1曲目が呼ばれる。
このとき上記の計算式のnにこの「平均選択曲順」を、重複度mにその仮想重複度を埋め込み計算すれば、
各重複度における「1つ目の曲」の平均選択曲順における確率がわかる。
並べてみると

仮想重複度1つ目の平均選択曲順1つ目の確率

42.83333333…⇒43曲目を採用 0.602841848
36.71428571…⇒37曲目を採用 0.610410551
32.125           ⇒32曲目を採用 0.610411908
28.55555556…⇒29曲目を採用 0.621672411
25.7              ⇒26曲目を採用 0.623210566
10 23.36363636…⇒23曲目を採用 0.615271892
50 5.039215686…⇒5曲目を採用 0.664223633
100 2.544554455…⇒3曲目を採用 0.773721819


という感じだ。

う~ん。
選択曲順の方を整数にまるめると誤差が大きくなるようであるが、
ゆっくりと増加傾向にあるようだな。



ちなみに「重複」というキーワードから、シングル起点での重複しか見ていなかったが、
この「重複」というのはそもそも単なる集計単位にすぎないので、
例えばEarly Yearsは22曲を収録しているが、言い換えれば「重複度22」という集計単位を持ったデータ、
というようにも捉えることが出来る。
この考え方によれば、重複度22の1つ目の平均選択曲順は257/(22+1)=11.17391304…となり、約11曲目。
その確率は0.633963136…であり、約63.39%。
つまり11曲聴いたらその中にEarly Years収録曲が少なくとも1曲入ってる確率は63%を超える。

一方、1回の出勤・帰宅時間=60分で聴けるストレイテナー曲数は14~15曲だったが、
15曲目までに重複度22の1つ目が選択される確率は0.748969978…=約74.89%、
よって1回の出勤・帰宅時間(60分)内ではEarly Yearsのどれか1曲を聴いてる確率はかなり高いと言えることになる。
(少なくとも10回出勤したらそのうち7回はEarly Yearsを聴いているはず)