sogayaのプログラミング

さらしの集計、トリシーカー、ビンゴマスク、ロトサマリー

FLTK版のRannu

Rannuは、乱数表を作成します。乱数は、二桁の十進数です。最小値、最大値を設定できます(たとえば、1から37まで)。空白ではなくコンマを挿入してCSVを作成するには、FileメニューからCSVを選択してください。rannu.csvが作成されます。Rannuを設定するために、manage.txtという管理ファイルが用意されています。Manageウィンドウでは、乱数表のサイズとして、KB(キロバイト)のテキストボックスにrannu.txtのサイズを入力してください。右詰(みぎづめ)で表示するには、KBをクリックしてください。乱数表の行数を指定できます。行数ではなくキロバイトでファイルのサイズを決定したいことを明示するには、行数として2147483647を指定してください。rannu.txtの行数がこうした巨大な数に達する前に、Rannuは、指定のキロバイトで書き出しを終了します。Rannuは、Mersenne Twister (MT, メルセンヌツイスタ)およびxorshiftの擬似乱数発生器(PRNG)を実装しています。SettingメニューからMTかxorshiftのいずれか選択してください。PRNGのシード(種)として、1から999999までの整数を想定しています。seedのテキストボックスにシードを入力してください。利用者が0を入力した場合、Rannuは、自動的に年月日時分秒に基づいてシードを決定します。PRNGの設定として、シードだけではなくアイドリングも設定できます。たとえば、利用者がアイドリング回数を400に設定した場合、Rannuは、シードに基づいて連続して発生した400個の乱数を無視します。401回目以降をrannu.txtに書き出します。SettingメニューからGroupingを選択した場合、Rannuは、MTから生成された乱数を6ビットずつ利用して、0から63まで発生します。Rannuは、cou99コマンドの機能を内蔵しており、二桁の数字をカウントして表を作成できます。算術平均および分散を計算できます。平均を計算してから、分散を計算するのではなく、期待値を利用して分散を計算します。たとえば、81から90まで、でたらめに書き出すならば、期待値は、85.5です。Rannuは、毎秒1回の頻度でmanage.txtの時刻を取得します。前回の時刻と異なる場合、manage.txtは、更新された可能性があるため、Rannuは、自動的にmanage.txtを読み込みます。Windows 2000のパソコンにDev-C++ 4.9.9.2をインストールしました。さらに、FLTK 1.3.0のDevpakをインストールしました(fltk-130-1gp.DevPakをPackman.exeにトラッグしてドロップしました)。Dev-C++IDERannuを構築しました。FLTKGUIを提供します。Rannuは、GUIを提供する32ビットアプリケーションです。Windows 2000, Windows XP, Windows 7, Windows 10で作動します。半角の¥ではなくバックスラッシュ(右下がりの斜線)でパス名の区切りが表示されます(日本語のパス名をサポートしていない?)。ステータスバーに表示された文字列をクリップボードにコピーするには、SettingメニューからCopyを選択してください。コマンドプロンプトにコマンドおよびパラメータを入力して起動できます。パラメータが無い場合、Rannuは、manage.txtに従います。詳細は、PDFを参照してください。

f:id:sogaya:20170714234436p:plain