数学の計算機
乱数発生器

乱数発生器

乱数発生器は、賞品の当選者を決定するための番号を選ぶだけでなく、さまざまな用途があります。どのような場面で使われるのか、どのように問題を解決するのか、ご紹介します。

ランダムナンバー

39, 67, 34, 23, 58, 21, 45, 87, 12, 98, 12, 14, 16, 54, 90, 91, 12, 32, 52, 64, 83, 74, 28

計算にエラーがありました。

目次

  1. 基本的な乱数生成器
  2. アドバンスド乱数ジェネレータ
  3. 乱数発生器の定義
    1. 乱数発生器が解決する問題点
  4. 乱数発生器を使用する場合
  5. 乱数発生器の歴史

乱数発生器

乱数発生器は、限られた範囲の数字から自動的に選択され、その作成に関しては予測可能なパターンはない。次の数字の各選択は、前の数字から完全に独立しています。しかし、その限界の間で乱数を生成する前に、分布範囲を指定することが可能です。これはユーザーからの入力が必要で、ランダム化に対する要求と意図する結果に完全に基づいています。

基本的な乱数生成器

1つの乱数だけを探している場合は、基本的な乱数発生器を使用することができます。しかし、まず、どの範囲を番号に使用するかを決定する必要があります。スコープとは、乱数を生成するための数値の範囲のことです。

例えば、1から10の間の乱数が欲しい場合、範囲は1から10になります。これを電卓に入力するには、下限を1、上限を10と入力します。

アドバンスド乱数ジェネレータ

複数の数字を生成したい場合や、より大きな範囲を扱いたい場合は、乱数生成器の拡張版を使用します。下限と上限の範囲を決定し、生成したい数を入力します。

また、整数か小数のどちらかを生成するオプションがあります。整数は、1、2、3などの整数とも呼ばれるものです。小数点以下の数字は、小数点以下の区切り文字(ドットやカンマ)で区切られた数字で、通常次のような形になります。1.02、2.12、3.33、など。

総合的な乱数生成器には、他にもいくつかのプロンプトが用意されています。結果の重複を許可するかどうか、結果を並べ替えるかどうか、小数を希望する場合は何桁にするか、などを選択できます。

ほとんどの場合、正確であることが理想的ですが、状況によってはランダム性が要求されることもあります。誰も予測できない結果を求めるのであれば、ランダムな結果を生成するプロセスが必要です。そこで登場するのが、乱数発生器だ。

乱数発生器は幅広い用途に使われ、ゲーム、セキュリティ、宝くじなどの業界で使用されていますが、最もありふれたシナリオでも使用することができます。このガイドでは、乱数発生器とは何か、その仕組み、最も一般的な使用方法、そしてその成り立ちについて説明します。

乱数発生器の定義

乱数発生器は、与えられた範囲に基づいて乱数または数字を選択します。乱数発生器には、ハードウェアベースのものと擬似乱数があります。

ハードウェア乱数生成器(HRNG)は、大気中のノイズや熱雑音など、理論的には計算不可能な物理現象に依存する。古典的な例としては、コインフリッパー、ダイス、ルーレットホイールなどがある。セキュリティや暗号の分野では、より高度な装置も使用されている。

疑似乱数発生器(PRNG)は、真のランダム性に近い数値列を生成するアルゴリズムである。ハードウェアベースの乱数発生器よりも高速で実装が簡単なため、コンピュータプログラムでよく使用されます。当社の電卓は擬似乱数発生器の一例です。

乱数発生器が解決する#問題点

乱数発生器は、さまざまな場面で利用することができます。あなたも気づかないうちに、すでに小さな場面で使っているかもしれません。判断に困ってコインをはじくというのは、乱数発生器を使用していることになります。

ゲーム、シミュレーション、セキュリティなど、多くのアプリケーションで何らかの形でランダム性が必要とされています。例えば、ゲームでは、各プレイヤーの次の手を選択したり、各プレイヤーに配るカードを決定するために乱数発生器を使用することがあります。

シミュレーションでは、計算で使用する乱数を生成するために乱数発生器を使用することができる。セキュリティ用途では、ワンタイムパスワードや暗号化キーの生成に乱数発生器を使用することがあります。

乱数発生器を使用する場合

乱数発生器の結果は、大小さまざまな場面で便利に使うことができる。例えば、運の力を信じているのであれば、宝くじの番号を選ぶのに計算機を使うことができます。抽選賞品が関係するイベントを計画している場合は、乱数発生器を使用して当選者を決定することができます。

大規模な統計計算をするときに、乱数発生器を使用することができます。

乱数発生器を使用するタイミングを知りたい場合は、以下のようなサインを確認しましょう。

  • ゲームやアプリケーションに偶然性を持たせたい。
  • 推測が困難な数字を生成する必要がある。
  • 母集団が大きすぎて、網羅的に列挙することができない場合。

乱数発生器の歴史

乱数発生器の歴史は謎に包まれている。ある人は、古代中国人が占いのために作ったと言い、ある人は、アラブの数学者が最初にギャンブルのために使ったと言う。また、アラブの数学者が最初にギャンブルのために使ったという説もある。

その起源はともかく、乱数発生器は何世紀にもわたってランダムな結果を生み出すために利用されてきた。

例えばサイコロは、古代では現在とは異なる形態や形をしていた。考古学者たちは、棒や貝殻、骨などさまざまな素材でできたサイコロや、2面または3面しかないサイコロを発見している。最古の立方体のサイコロは、紀元前2500年頃のインダス渓谷で作られたことが知られている。

電子的な乱数発生装置の発明は、1947年にRAND研究所がルーレットをコンピューターに取り付けて乱数を発生させる装置を作ったのが最初とされている。この装置によって、科学者たちは初めて膨大な数の乱数列にアクセスすることができた。その後、この乱数列は、科学者が実験に使えるようにと、本にまとめて出版された。

また、1940年代に現在の有名なブレッチリーパークで作られた同様の機械「ERNIE」は、イギリスのプレミアム・ボンドくじの乱数発生に使われた。その後、この乱数発生器の動作原理の不正や非乱数性への疑念を払拭するために、この乱数発生器を題材にしたドキュメンタリー映画「The Importance of Being E.R.N.I.E. 」が制作された。

1955年、ジョン・ノイマンは乱数発生器をさらに発展させる。彼は、シミュレーションやモデリングに使われる乱数生成法「中二階法」を考案した。

これはシミュレーションやモデリングに使われる乱数の生成方法である。そして、また二乗して、真ん中の数字を捨てる。その結果、乱数と同じ性質が得られると考えたのである。フォン・ノイマンの理論は、最適なものとは言えなかった。どんな初期数を選んでも、この方法で生成された系列は、8100、6100、4100、8100、6100、4100のような値の繰り返しの短い周期に縮退してしまうのである。

コンピュータのプログラミング言語には、今でもフォン・ノイマンの方式を採用しているものがある。

1999年、インテルはi810チップセットにハードウェア乱数発生器を追加した。この実装では、温度ノイズに基づく真の乱数が得られるようになった。しかし、ソフトウェア乱数生成器ほど高速には動作しなかった。2012年、IntelはRDRAND命令とRDSEED命令をチップに追加し、同じ温度変動に基づく真の乱数を、今度は最大500Mb/sの速度で生成できるようにした。

人々は、このシステム、OSカーネル、プログラミング言語、暗号ライブラリなどで、どの乱数発生器を使うべきかを今も議論している。アルゴリズムの多くのバリエーションは、速度、メモリ節約、セキュリティのために最適化されている。乱数発生器は進化し、ランダムなパスワードの作成、安全な暗号鍵の生成、研究目的のための実世界の事象のシミュレーションなど、様々な用途で使用されている。