ロトサマリー
a branch of the LOTO SUMMARY website

コマンドユーザーズガイド

rannu


rannuコマンドは、乱数表を作成します。乱数は、二桁の十進数です。最小値、最大値を設定できます(たとえば、1から37まで)。乱数の種(シード)を設定できます。

管理ファイル

コマンドプロンプトにコマンドおよびパラメータを入力して起動できます。rannuを設定するために、manage.txtという管理ファイルが用意されています。パラメータが無い場合、rannuコマンドは、manage.txtに従います。たとえば、manage.txtの第1行が0ではない場合、区切り文字としてコンマを使用します。すなわち、CSVになります。

行番号 記入 パラメータ 説明
1 0 0ではない場合、rannu.csvを作成します。
2 C:¥rannu-C¥ 出力先のディレクトリ名、最後に¥が必要です。
3 32 -k32 32KBのファイル
4 1 -i1-37 最小値、一桁の場合、十の位に0を付加します。
5 37 最大値
6 0 設定内容が0ではない場合、0から63まで、でたらめに書き出します。
7 400 -f400 乱数発生器のアイドリング(出力する前の回数)
8 123456 -s123456 乱数の種(シード)
9 2147483647 -L- ファイルの行数
20 -L20

擬似乱数

乱数と異なり、擬似乱数は、シードが同じであれば、結果が再現します。MT(メルセンヌツイスタ)およびxorshiftの擬似乱数発生器(PRNG)を実装しています。

シードを提供する

-s0が指定された場合、rannuコマンドは、自動的に年月日時分秒に基づいてシードを提供します。rannuコマンドが提供したシードを画面に表示するには、さらに、-uを付加してください。図64では、まず、rannuコマンドにシードを提供させました。次に、利用者は、そのシードを指定して、rannuコマンドを実行しました。同じシードの結果として、同じ乱数表が作成されました。

rannu -s0 -u

区間

最小値および最大値で区間を設定するには、rannuコマンドのパラメータとして、たとえば、-i1-37を付加してください。この場合、1から37まで、でたらめに書き出します。ただし、一桁の数は、二桁になるように十の位に0を付加します。

算術平均

rannu.txtを読み込んで、二桁の数字をカウントして、表を作成して、算術平均(arithmetic mean)を計算するには、rannuコマンドのパラメータとして、-eを付加してください。算術平均は、ファイルではなく画面に表示されます。-eが付加された場合、rannuコマンドは、各数字の個数の表を算術平均に追加します。表の追加を抑制するには、rannuコマンドのパラメータとして、さらに-t-を付加してください。図65を参照してください。

rannu -i0-99 -e -t-

パラメータ ほぼ同等な入力 説明
-6 -i1-43 ロト6
-7 -i1-37 ロト7
-a 分散および表を画面に表示する。
-a –t- 分散のみ表示する。
-b -i1-40 ビンゴ5
-e 算術平均および表を画面に表示する。
-e –t- 算術平均のみ表示する。
-f400 400回のアイドリングを行う。
-g -i0-63 0から63まで、でたらめに書き出す。
-i0-99 0から99まで、でたらめに書き出す。
-k32 32KB(キロバイト)の乱数表を作成する。
-L20 20行の乱数表を作成する。
-L- -L2147483647 行数ではなくキロバイトでサイズを指定する。
-m -i1-31 ミニロト
-pm MT
-px xorshift
-s0 rannuコマンドが自動的にシードを提供する。
-s0 -u rannu提供のシードを表示する。
-s123456 利用者がシードを提供する。

分散

rannu.txtを読み込んで、二桁の数字をカウントして、表を作成して、分散(variance)を計算するには、rannuコマンドのパラメータとして、-aを付加してください。分散は、ファイルではなく画面に表示されます。-aが付加された場合、rannuコマンドは、各数字の個数の表を分散に追加します。表の追加を抑制するには、rannuコマンドのパラメータとして、さらに-t-を付加してください。

xorshift

利用者がPRNGの実装を指定しなかった場合、rannuコマンドは、自動的にMTを選択します。PRNGの実装としてxorshiftを選択するには、-pxを指定してください。図66では、まず、MTによる結果をカウントして、算術平均を表示しました。次に、xorshiftによる結果をカウントして、算術平均を表示しました。さらに、xorshiftによる結果をカウントして、分散を表示しました。最後に、MTによる結果をカウントして、分散を表示しました。シードは同一ですが、MTとxorshiftは、結果が相違しました。

rannu -s212994 -a -t- -px

キロバイト

rannuコマンドは、rannu.txtのサイズがKB(キロバイト)の単位で指定されることを想定しています。32KBのrannu.txtを作成するには、-k32を指定してください。行数ではなくキロバイトでファイルのサイズを指定したいことを明示するには、-L-を指定してください。-L-を指定した結果は、行数として2147483647を指定した結果と同じになります。rannu.txtの行数がこうした巨大な数に達する前に、rannuコマンドは、指定のキロバイトで書き出しを終了します。

行数

-k1が指定された場合、rannuコマンドは、17行を書き出します。ただし、第17行は、20個ではなく11個になります。少ない行数を書き出すように設定するには、-L数字を指定してください。

キロバイト パラメータ rannu.txtの行数
1 -k1 17
16 -k16 265
128 -k128 2115
1024 -k1024 16913
10240 -k10240 169126
図64. keyun提供のシードを利用者が指定しても、同じ乱数表が作成された 図65. 0から99まで、でたらめにファイルに書き出して、画面に算術平均を表示した 図66. シードは同一であるが、MTとxorshiftは、結果が相違した 図67. 2個のファイルをTYPEコマンドで連結して読み込んだら通し番号であることが判明した 図68. catコマンドで2個のファイルを連結して読み込んだ
図69. -vが付加されたcatコマンドでatnd.exeを表示したら、先頭にMZが表示された 図70. UNIXのシェルのtypeコマンドでコマンドがどこにあるか確認した 図71. パス名が付加されたCOPYコマンドでカレントディレクトリに新しいファイルが作成されたが、日時は、古い 図72. コマンドプロンプトに2>を入力しないでバッチファイルに2>を記入して、バッチファイルを実行した 図73. COPYコマンドで連結したら、EOFとして1Ahが追加された 図74. TYPEコマンドで連結したファイルと、COPYコマンドで連結したファイルを比較したら同一であった 図75. -LF -=DIRが付加されたatndコマンドで、stdinではなくDIRが表示された
×

cat


catコマンドは、ファイルの内容を画面に書き出します。2個以上のファイルを連結して、画面に書き出すことができます。

catコマンドを実行するには、UNIXのcatが含まれるソフトウェアが必要です。MinGWかCygwinかGNU Win32のいずれかをWindowsパソコンにインストールしてください。cat, head, odは、GNUのコアなユーティリティに含まれています。Windowsで利用するために、Coreutils Win32をインターネットで検索してダウンロードできます。インストーラーの例としては、coreutils-5.3.0.exeがあります。

行番号

行番号を表示するには、catコマンドのパラメータとして、-nを付加してください。図68を参照してください。

バイナリファイル

バイナリファイルの内容を表示するには、catコマンドのパラメータとして、-vを付加してください。odコマンドは、十六進数で表示しますが、catコマンドは、たとえば、00hを^@と表現します。MZは、ASCIIの文字であるため、そのままMZと表示されます。図69を参照してください。

パラメータ 説明
-n 行番号を表示する。
-b 空行ではないならば、行番号を付与する。
-v バイナリファイルを表示する。

TYPE


TYPEコマンドは、テキストファイルの内容を画面に書き出します。

2個以上のファイルが付加された場合、まずファイル名を画面に表示して、次に内容を表示する工程を、TYPEコマンドは、反復します。TYPEコマンドは、標準出力ではなく標準エラー出力にファイル名を書き出します。標準エラー出力からNULにリダイレクトすることで、ファイル名を消去できます。図67を参照してください。標準エラー出力からファイルにリダイレクトするために、単なる>を記入しないで2>をバッチファイルに記入した例(2V_NUL.zip)をダウンロードできます。図72を参照してください。

TYPE marunana.txt numbers7.csv 2> NUL

シェルの組込みコマンド

UNIXのwhichコマンドは、typeコマンドに似ています。UNIXのシェルの組込みコマンドとして、typeコマンドは、コマンドがどこにあるか表示します。図70では、type typeでtypeコマンドがシェルの組込みコマンドであることを確認しました。シェルのtypeコマンドは、WindowsのTYPEコマンドと関係がありません。

atnd


atndコマンドは、ファイルを読み込んで、指定された位置およびその周辺の行を出力できます。もうひとつの機能としてファイルの行数を表示します。

たとえば、第640行を表示するには、atndコマンドのパラメータとして、-p640を付加してください。先行する4行も表示するには、さらに-b4を付加してください。後続の4行も表示するには、さらに-a4を付加してください。-c4は、-a4 -b4を意味します。図37を参照してください。

ファイルの開始部分

ファイルの開始部分として、3行を書き出すには、atndコマンドのパラメータとして、-h3を付加してください。-h3は、-b2 -p1を意味します。

行番号

行の先頭に番号を表示するには、atndコマンドのパラメータとして、-nを付加してください。読み込んだ各行の表示形式として、まず、行番号および縦線が表示されて、次に行が表示されます。図66を参照してください。正確に言えば、-nが付加されたatndコマンドは、ファイルの行の番号ではなく通し番号を表示します。図67を参照してください。TYPEコマンドで2個のファイルを連結して読み込んだら、atnd -nにより通し番号が表示されることが判明します。TYPEコマンドと同様に、catコマンドで2個のファイルを連結して読み込んだ例を図68に示します。

パラメータ ほぼ同等な入力 説明
-a2 後続の2行を表示する。
-b3 先行する3行を表示する。
-c4 -a4 -b4 前後の4行を表示する。
-h8 -b7 -p8 ファイルの開始部分として、8行を表示する。
-LF ファイルの行数を表示する。
-LF -=DIR 情報源として、DIRというラベルを表示する。
-n 行の先頭に番号を表示する。
-p567 第567行を表示する。
-t9 -b8 -p行数 ファイルの終わりにある9行を表示する。

ファイルの行数

テキストファイルの行数を表示するには、atndコマンドのパラメータとして、-LFを付加してください。まず、行数が表示されます。次に、最長の行のバイト数および行番号が表示されます。最後に、第1行が表示されます。第1行ではなく第640行を表示するには、さらに-p640を付加してください。

標準入力から読み込む

ファイル名が指定されていない場合、atndコマンドは、標準入力(stdin)から読み込みます。標準入力とは、キーボードのことです。標準出力とは、画面のことです。標準エラー出力も画面です。行数を表示するために-LFを付加する場合、情報源として標準入力(stdin)を命名するには、-=名前を付加してください。図75では、stdinではなくDIRが表示されました。

ファイルの終わり

ファイルの終わりにある9行を表示するには、atndコマンドのパラメータとして、-t9を付加してください。atndコマンドは、自動的にファイルの行数を取得して、-b8 -p行数が指定されたと同等の結果を生じます。

COPY


ファイル、ディレクトリは、COPYコマンドによって新規に作成されます。もうひとつの機能として、COPYコマンドは、ファイルを連結します。

COPYコマンドのパラメータとして、読み込むファイルの名前および新しいファイルの名前を付加してください。新しいファイルをカレントディレクトリに作成したいならば、COPYコマンドのパラメータとして、読み込むファイルのパス名を付加してください。新しいファイルは、更新日時が読込み対象のファイルと同一です。すなわち、古い日時も複写されます。図71を参照してください。

ファイルを連結する

多数のファイルを連結するには、COPYコマンドのパラメータとして、読み込むファイルの名前どうしをプラス( + )で連結して、空白で区切って、新しいファイルの名前を付加してください。COPYコマンドで連結したら、EOF(ファイルの終わり)として1Ahが追加された例を図73に示します。1Ahが追加されないように命令するには、COPYコマンドのパラメータとして、/Bを付加してください。/Bが付加されたCOPYコマンドの例を図74に示します。

パラメータ 説明
/A MS-DOSのテキストファイルを連結する。EOFとして1Ahを使用する。
/B バイナリファイルを連結する。
/Y 本当にコピーしますか? Yesの意思を示す。新しいファイルは、上書きされる。
  • E-mail: sogaya@live.jp