Random.orgによる乱数生成

もちろん、算術法を使用して乱数を生成しようとする人は、罪に生きています。

-ジョン・フォン・ノイマン



このような優れたサービスrandom.orgがあります。これはすでにハブで度も言及されています このサイトの主なタスクは、大気ノイズを使用した乱数の生成です。 同じサイトで、ランダムおよび擬似ランダムジェネレーターのテスト結果と比較を見つけることができます。 この記事では、サイトAPIを使用するためのシンプルなライブラリについて説明します。



Random.org



Random.orgには、乱数の生成を使用する便利な機能がたくさんあります。コインの投げ、サイコロ、カードのシャッフル、宝くじの組み合わせの取得、サウンドの生成、ビットマップなど。 特定のディストリビューション用のカスタム生成もあります。 原則として、これはすべて複雑ではありませんが、興味深い事実は、生成が大気ノイズを使用して行われることであり、これにより、 何らかの方法で 、Random.nextInt()よりも優れたランダムを取得できます。 それから、そのようなAPIを備えたライブラリを用意しておくといいと思い、それを書くことにしました。



検索する



書く前に、あなたは見る必要があります。おそらく誰かがすでにこれをしているでしょう。 はい しました。



一般的に、私は自分で書くことにしました。



API



Random.orgはプリミティブなHTTP GET APIを提供しますが、それ以上は必要ありません。 操作は4種類のみです。



整数ジェネレーター


指定された範囲でランダムな整数を生成します。 たとえば、これは2つのサイコロを振るリクエストです。

http://www.random.org/integers/?num=2&min=1&max=6&col=1&base=10&format=plain&rnd=new



シーケンスジェネレーター


指定された範囲内のすべての一意の整数でシーケンスを生成します。 本質的にCollections.shuffle()が行うこと。 たとえば、これはカードのデッキをシャッフルするためのリクエストです:

http://www.random.org/sequences/?min=1&max=52&col=1&format=plain&rnd=new



ストリングジェネレーター


文字のセット(数字、恋人の場合、ラッパーの場合)を選択する機能を使用して、指定されたサイズのランダムな文字列を生成します。 したがって、たとえば、 キャラクターのパスワードのニックネームを生成できます。

http://www.random.org/strings/?num=1&len=12&digits=on&upperalpha=on&loweralpha=on&unique=on&format=plain&rnd=new



クォータチェッカー


既に理解しているように、これはすべて無料ではありません。 そうではありませんが、1日あたり100万ビットを無料で提供します。 これで十分です。 そして、どれだけ残っているかを調べるために、次のリンクを使用できます。

http://www.random.org/quota/?format=plain

前の3つのリンクをクリックした場合、すでに1500ビットを費やしています。



間違い


生成が成功すると、サーバーはコード200、失敗-コード503を返します。これがすべてのエラーです。



このAPIの場合、 5つのクラスのライブラリがJavaで記述されており、上記のすべてのメソッドの呼び出しが単純で理解可能な形式で行われています。

//   IntegerGenerator ig = new IntegerGenerator(); ig.generate(1, 6, 2); //   SequenceGenerator sg = new SequenceGenerator(); sg.generate(1, 52); //   StringGenerator strg = new StringGenerator(); strg.generate(12, 1, true, true, true, true); //    QuotaChecker qc = new QuotaChecker(); qc.quota();
      
      







すべてのように。 githubでソースを表示し、元の名前randomorg (6キロバイト)でlibをダウンロードできます



All Articles