開発支援

  • Amazon.co.jp
    開発支援を希望する方は、上のリンクを通してAmazonでお買い物をすると、私にいくらかの開発費が入る……はずです。
  • Amazon欲しいものリスト
    ひっそりと欲しいものリストを作ってみました。リストを眺めるのも結構楽しいですよね。

最近のトラックバック

ようやくゲットしましたよ

無料ブログはココログ

« 「ボーンズ&カーズ」Ver1.2.9公開 | トップページ | ActivePerlのインストールが判りません! »

このダイス、出目が偏ってませんか?

 私のダイスボットで採用しているメルセンヌ・ツイスターは、非常に高度に分散した品質の高い素晴らしい疑似乱数を作ります。
 一方で私の公開しているダイスボットは、しばしば目が偏ります。
 これが矛盾しない理由をちょっと説明しようと思います。

 ***

 コンピュータは決まったことをきちんと繰り返すのが得意で、デタラメな事をやるのが苦手な堅物です。
 乱数とはデタラメな数値を作ることですから、正確な乱数を作り出すのはとても苦手なのです。
 その苦手な乱数をなんとか作り出すために、様々な人がコンピュータが得意な理路整然とした手順で乱数っぽい数値を上手く作り出す方法をひねり出しました。
 ダイスを振ったような本物の乱数じゃないので、疑似乱数といいます。

 主流のやり方は、ある数値を元にややっこしい計算をしてまるでデタラメとしか思えない数値を見つけます。次にさっき計算した数値を使って、またデタラメっぽい数値をみつけます。
 これを繰り返すことで、順番に規則正しくデタラメっぽい数値が作れます。
 規則的に作っているので、条件が同じなら同じパターンで数値が現れます。
 紙テープにあらかじめずらっとデタラメな数を書いておいて、くるりと輪に繋げて順番に使うと同じような事が出来ます。

 さて、この仕組みで肝心なのはデタラメな数字を書いた紙テープの品質です。
 仮に紙テープが10センチの長さしかなくて、1センチに一つの数値が書いてあるとします。
 1~10までの数が書いてあれば1d10の代わりに使えるのですが、この乱数発生器には重大な問題があります。
 例えば、5のあとに何の数字が入ってるかが1パターンしかありませんから、5がでたら次に何がでるかがすぐ判ってしまいます。
 もう一つの問題は、一度5が出たら次に5が出るのは常に10回後です。
 もちろん本物の乱数では、1d10を振って5が出ても次に何が出るか判りませんし、5が2回連続で出ることもあります。
 結局、この乱数発生器では今出た数値から次の数値が簡単に予測できてしまいます。

 これは極めて品質の悪い乱数と言えます。

 一方で、この簡単な乱数発生器は出目が偏りません。10回使ったらどの数字も必ず1回ずつ出ます。20回使ったら常に2回ずつ出ます。
 品質を上げるには紙テープの長さを十分長くして、同じ数字がパターン違いで何回も出るようにして次の数字を判りにくくしたり、同じ数が続くパターンも混ぜるのが有効でしょう。

 ***

 では肝心のメルセンヌ・ツイスターの話に戻りましょう。
 メルセンヌ・ツイスターの紙テープ(乱数周期)は(2^19937)-1というとんでもない長さです。
 6000ケタくらいの数なので、どんな長さか想像するのが難しいですね。
 地球の赤道が約4万kmでcmで表してもわずか10ケタ。天文単位でも14ケタ、1光年で17ケタですから、まさに天文学的です。

 この気が遠くなるような長周期が支えているのは、乱数が623次元に均等分布するという膨大な乱数パターンです。
 早い話が過去623個分の乱数を全てチェックしないと次の数値が何か判らないということになります。
 今出た乱数だけをみて、次の乱数を当てるのはほぼ不可能と考えていいと思います。

 また、これだけパターンが多いということは、同じ数が100回やそこら連続しても、もう一回振ったらまだ出る可能性があります。
 本物の乱数は何百回同じ数が出ようが次に出ない保証はありませんから、かなり本物の乱数に近い訳ですね。

 これで、メルセンヌ・ツイスターがとても良くできた疑似乱数発生器だというのは判ると思います。

 ***

 さて、これをTRPGに応用したときに奇妙なことが起こります。
 数字が極めてバラバラ(分散性が高い)でいかにもデタラメ(乱数間の関連が薄い)な乱数をつくるはずのメルセンヌ・ツイスターですが、出目が偏る事がしばしばあります。
 3~4回ロールしてみて「あれ?大きい出目ばっかりだなぁ、偏ってるぞ」なんて言っている人、ときどき居ませんか?

 ここまで読んできたみなさんにはおわかりでしょう。

 メルセンヌ・ツイスターは非常に大きな周期で高度に分散した乱数なので、短い期間で区切ると出目が偏ってみえることがあるんです。(なにしろ数百回同じ出目が出るパターンまで網羅されていますもんね)
 なんの仕掛けもないダイスを実際に振っても、しばしば出目が偏るのと全く同じ事が起きるという訳ですね。
 つまり、メルセンヌ・ツイスターはダイスの女神のきまぐれも再現できてしまう凄い疑似乱数というわけです。

« 「ボーンズ&カーズ」Ver1.2.9公開 | トップページ | ActivePerlのインストールが判りません! »

IRC用ダイス&カードボット「ボーンズ&カーズ」(Perl)」カテゴリの記事

困ったときには(FAQ)」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: このダイス、出目が偏ってませんか?:

« 「ボーンズ&カーズ」Ver1.2.9公開 | トップページ | ActivePerlのインストールが判りません! »

TRPG用ツール関連リンク

  • ActivePerl
    ActiveStateのWindows用Perl処理系ActivePerlのサイト。英文。
  • COM Meets Ruby
    Windows用Ruby処理系の一つActiveScriptRubyのサイト。
  • TRPG支援ツール@Wiki
    2ch卓上ゲーム板TRPG支援ツールスレWiki
  • どどんとふ@えくすとりーむ
    Ruby+Flashの高機能オンセツール「どどんとふ」の公式サイト。プレイ会場もあるのでお試しもOKです。私のB&Cが丸ごと入ってます。
  • ターミナルベロシティ
    IRCオンラインセッション界でデファクトスタンダードなダイスボットOD-Toolが公開されているWiki。ぶっちゃけ国産TRPGのフォローアップはOD-Toolの方が良いですw

よく行くサイトさん

  • TRPG SNS
    TRPGに特化したSNS。利用は無料で、どどんとふの半公式コミュもあります。
  • TRPG.NET Wiki
    IRCサーバでお世話になっているTRPG.NET上にある、TRPG関係の包括的?Wiki
  • ten-youの日記
    JavaScriptでLimeChatのマクロ作りに余念がない“ten-you”さんのブログ。DX2用決定版マクロはここから出るかも?!
  • あかまんぼう
    アイコンなどのグラフィックス関係で多大な協力をしてくれている“なかやまさき”さんのブログ
  • お店番ブラウの控え室
    TRPG仲間にして、グラフィック担当の“白瀬 北斗”氏のブログ。内容はTRPGと無関係な罠。
  • きまぐれTRPGニュース
    有名なTRPG関係ニュースのまとめサイト。新製品から論考まで幅広く網羅されています。
  • ひきだしの中身blog
    CoCの伝道師かつ作家かつ美味い物スキーの“内山 靖二郎”氏のブログ。
  • ぽち*ぷ~ち
    怒濤のLinux使い“犬山ぽち丸”さんのサイト
  • トリスメギストスラボ
    三賢者の研究所でしょうか?絵が描けてTRPGが出来る“xing”さんのサイト。デザインが綺麗だなぁ。
  • パルテストラーダ
    “Regulus”さんのArsMagicaのサイトです。人のことは言えませんけど、マニアックですよね(笑
  • 大槌ぶんぶん
    ウォーハンマー翻訳チームの方のブログ。「どどんとふ」の竹流さんの友人だそうです。凄い人は凄い人と繋がってるものですね。
  • 来ヶ!たいたいキングダム 4th Destructor
    Ruby使いの“来山 竹流”さんのブログ。メインは「ど@えむ」に移行したので、こっちはTRPGと開発の話?!
  • 迷いの森
    私はもっぱらブログを読んでる“雪だるま”さんのサイト

こんなの読んでます