今注目のニュース
京都アニメーション、献花台を8月25日で終了 事件から1カ月を節目に決定
Googleが警告済みのリークパスワードを使い続けてる人…変えようよ? ね?
Tポイントでビットコインが購入可能に bitFlyerが開始

擬似乱数単語

ギジランスウ

掲示板をみる(5)
  • twitter
  • facebook
  • はてな
  • LINE

擬似乱数とは、「乱数列(乱数)のように見えるが、実際には確定的な計算によってめている数列に含まれる数」(Wikipediaより)。狭義(あるいはニコニコ的な意味)では、コンピュータで生成する乱数のようなもののこと。

概要

コンピュータによるシミュレーションや、ゲームを作る際にランダムな数が欲しくなる時がある。そんな時に使うのが擬似乱数である。けど、場合によっては乱数はほしいけど後で同じ結果を再現したいとかいう場合がある。よって、とりあえず擬似乱数にほしい性質は以下の2つ。

  1. できるだけランダムであること。
  2. 内部の初期値(これをseed/種という)が分かればあとで同じ乱数の列を作ることができる。

ちなみに、このseed値の設定にはいろいろな手法があるが、一番よく使われているのは現在の時刻から決める手法であろう。

擬似乱数生成アルゴリズム

擬似乱数を作る方法のこと。Wikipediaの記述は詳しいが少々冗長であるため、特徴を述べるにとどめておく。

  1. 方採中法(middle-square method)
    かのフォン・ノイマン博士が提唱した最初の乱数生成アルゴリズムで、2乗(方)した値のん中を乱数値として取ることからこの名がついた。もうカビが生えたような歴史の教科書レベルアルゴリズムである。
  2. 線形合同法(linear congruential generators)
    C言語rand関数(stdlib.h)にも採用されている、記憶容量に最も優れるアルゴリズムで、これまで長く使われてきた。周期が短いとか、設定を誤ると偶数ばっかりだったり奇数ばっかりだったり偶数奇数が交互に出るとかいう欠点がある。性も向上してきた今、他のアルゴリズムを使うべきだと思う。
    カルドセプトサーガ?お前は何を言っているんだ
  3. メルセンヌ・ツイスタ(Mersenne Twister)
    松本教授(当時は広島大学在籍、現在東京大学)らが20世紀末に発表したアルゴリズム219937-1のすごく長い周期を持つ(余談だが219937-1≒4.315*106001で、いわゆるメルセンヌ素数の一つ)。また較的高速で、線形合同法のように偶数奇数が規則正しく出ることはない。
  4. Xorshift
    名前の通り、排他的論理和(XOR:演算対の2つのビットが同じなら0、違うなら1)とビットシフト演算(ビットを左や右にずらす演算)しか使わない擬似乱数生成アルゴリズム2128-1の周期で、かなり速い。ちょっとしたゲームに使うくらいならこれで十分だろう。

ニコニコ動画と擬似乱数

なんといっても乱数調整なしにこのセクションはれまい。というか乱数調整の記事のほうがこの手の話に詳しいのでそちらを参照されたい。ファイアーエムブレムシリーズにおける"ファルコン法"やポケモンの乱数調整が特に有名である。特に、TASる上で擬似乱数の乱数調整は欠かせないものとなっている。

しかしながら乱数調整制作者の意図した仕様の範疇外だったり、ゲーム性を破壊することから否定的な意見も少なくない。

関連商品

関連項目

掲示板

急上昇ワード

最終更新:2019/08/21(水) 07:00

ほめられた記事

最終更新:2019/08/21(水) 07:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

       

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

TOP