ピクシブ百科事典は2023年6月13日付でプライバシーポリシーを改定しました。改訂履歴

目次 [非表示]

曖昧さ回避

ヒプノシスマイク』の登場人物→飴村乱数


概要

出現法則に規則性がない数の事。すごろく等の遊戯から暗号生成など用途は多岐にわたる。


コンピュータではその性質上、計算による擬似的な乱数しか生成できないので暗号生成といった秘匿性が重要な用途では物理現象から乱数を生成する装置を搭載しなければならない。

乱数と擬似乱数の違い

項目乱数擬似乱数
生成方法物理現象計算
周期性なしある(長い周期で見ると無視できなくなる)
ディジタル機器への実装面倒容易

乱数生成方法

さいころ

身近で簡単な生成方法である。そのため、遊戯によく用いられる。ただし、カジノなど一部の業界では規格に沿ったサイコロでなければ使うことはできない(イカサマ防止のため)。

また、正二十面体のサイコロを使うと、10進数の乱数を生成することができる。


熱雑音

抵抗体内の電子の不規則な熱振動による雑音を大幅に増幅してその雑音を必要な形に変換する。


ダイオードの雑音

ツェナーダイオードの降伏電圧近辺で電圧がごく僅かに不規則な上下をしているので、それを大幅に増幅してその雑音を必要な形に変換する。


放射性同位体の原子核崩壊

放射性同位体の崩壊は物質(≒原子の集団)としてみた場合は崩壊頻度は指数関数に基づいているが、個々の原子については崩壊するまでの時間は不定なので単位時間当たりに放出される放射線の数にはばらつきがある。そのことを利用して、原子核崩壊を検知しその結果を必要な形に変換する。


余談であるが吸収線量(放射線量)の計測はこの性質により吸収線量と検知器の精度により異なるが、十分な時間測定しなければまともな値は出てこない。特に吸収線量が低い場合は誤差が実用に耐えうる値に収束するまでの時間が長くなる。

用途

  • 遊戯
  • スペクトラム拡散通信(広い周波数帯に分散して通信する。耐妨害・秘匿性・耐雑音性に優れる。また多重接続も可能)
  • 暗号通信

コンピューターゲームにおける乱数

コンピューターゲームでは、特にRPGのジャンルにおいては乱数がよく使われる。

敵にエンカウントする判定(ランダムエンカウントの場合)・どんな種類の敵に出会うか・攻撃時のダメージの揺れ幅・攻撃回避やかいしんのいちげきの判定・アイテムドロップなど多岐にわたる。

前述のとおり、コンピューターでは計算などによる擬似的な乱数の発生、もしくはあらかじめ乱数テーブル(乱数表)を用意して、『現在何番目の乱数テーブルか』によって乱数を出すことが多い。

コンピューターゲームの場合、多くはあらかじめ乱数テーブルを用意して、画面の表示1フレーム(多くの場合1/60秒)毎に乱数テーブルを1つ進める『フレーム乱数』という方式を取っている。

乱数はゲームによって、設定メニューで調節できる設定、ゲームハード本体の日付や時刻の変更、セーブなどのゲーム中の行為によって調整できる場合がある。

ただし、ゲーム、もしくはゲーム内の場面によっては、フレーム乱数を採用していないケースもある。この状況を逆手にとって、敵にプレイヤーにとって不利にならない行動をとらせたり、味方のステータスアップを容易にするなどの裏技もある。

(前述のフレーム乱数を採用している場合は、1度や2度有利な判定をもぎ取る程度ならともかく、全編に渡ってやろうと思うと、1/60秒のタイミングを、時に数十回から数百回も連続成功させなければならないので、そのような場合は人間の手作業ではほぼ不可能であり、後述の通り実質的にTAS専用の裏技となる。)


また、この乱数を完璧に解析して、プレイヤーに有利な状況を作り、コンピューターにプレイさせてそのゲームの最短タイムでクリアするTAS動画などがある。


擬似的なものであるため、確率上では可能であるはずの「当たり」が、擬似乱数においては複数重なった場合に「絶対に組み合わされない」ケースもあり、ハズレくじになるというプログラマーにとっての落とし穴もある。ファミリーコンピュータ版『ドラゴンクエストⅢ』の「オルテガvsキングヒドラ」などは有名で、擬似乱数のパターンの都合でどうやってもオルテガが勝利する結果を引き当てることができない。


関連タグ

数学 サイコロ

関連記事

親記事

かず

子記事

兄弟記事

pixivに投稿されたイラスト pixivでイラストを見る

pixivに投稿された小説 pixivで小説を見る

このタグがついたpixivの作品閲覧データ 総閲覧数: 1723209

コメント

問題を報告

0/3000

編集可能な部分に問題がある場合について 記事本文などに問題がある場合、ご自身での調整をお願いいたします。
問題のある行動が繰り返される場合、対象ユーザーのプロフィールページ内の「問題を報告」からご連絡ください。

報告を送信しました