● 名称 mko --- ランダム連鎖生成プログラム ● 使い方 mko DICFILE [-v] [-nNWORDS] [-mMINLEN] [-xMAXLEN] ● 概要 えーと、多分BBSなどで配布した人の友人、または友人の友人 などが作ったものです(爆笑)。うぃるすではありません。 とある数学モデルを使って、ランダムデータ列を発生するだけの プログラムなので、別に発生されたデータ列を見ても学術的な興味が ない方には面白くないかもしれません(笑)。詳細はアルゴリズムの項 を参照して下さい。 ランダムデータ列は元のDICFILEのデータ列の傾向があると考えられ ます。したがって、元のDICFILEを適当な方法で作った(エディタなど で可読文字で構成した)場合 ・思想・信条を同一とする団体や会社など法人の名付け ・子供やペットの名付けはもちろん、上記団体で主宰者に多額(って なんだ)の奉仕をしてくれる人に、栄誉として別名を付与する ・ネタのないライターの方々のデッチ上げ記事に登場する固有名詞の 生成 などに応用が可能かもしれません(試していないのでわかりません)。 ● オプション DICFILE 後述するように統計を取られるデータファイルです。 デフォルトは『DICFILE.mko』です。 単語を1行一つ書き連ねたテキストファイルなんかを使うこと ができます。なおそういったファイルを使用する場合の事を 考えて、0x0dや0x0aは無視し(後述するようにこれらはデータ 発生の最初と最後を定義する特殊な文字として働きます)、 『#』からこれらの文字までは読み飛ばされます。理由はきか ないで下さい。 -v 内部状態を詳しく表示します。 NWORDS 生成する数量です。 MINLEN MAXLEN これらを指定すると生成する連鎖のおおよその長さを 決めることができます。デフォルトはMINLENが3、MAXLENが 255です(MAXLENは255が最大です)。 ● アルゴリズム DICFILEから2バイトづつのデータを読み込み、1次マルコフ連鎖に 基づき、同様の傾向を持つランダムデータ列を乱数によって生成 します。ただし2バイトデータはたまたま(笑)、1バイト目が0x81 から0x9fまたは0xe0から0xfcの範囲に、2バイト目が0x40から0x7e または0x80から0xfcの範囲にある場合(MS-DOS実行形式または -DSJISを付けてコンパイルした場合)、双方とも0x81から0xfeの 範囲にある場合(MS-DOSや-DSJISぢゃない場合)以外は、1バイト 読み飛ばされます(理由はバグについての項参照)。  ここで0x0aで区切られたデータ列を『行』とよぶことにし (笑)、この行頭および行末にはそれぞれ仮想記号『^』『$』が付加 されていると仮定すると、生成されるデータ列は必ず記号『^』で 始まり、マルコフ連鎖によって記号『$』が生成されたとき出力を 停止します。記号『$』が生成された時点でデータ列の長さがMINLEN 未満の場合は、記号『$』は無条件に選ばれませんが、DICFILE中で 記号『$』にしか接続しない文字の場合はこの限りではありません。 ● バグ ・DICFILE中の記号(2バイト列)の種類は300以内、2記号の連鎖の 種類は1000以内に制限されています。 ・内部データベースの検索は線形サーチなので遅いです(だから どうした)。 ・生成されたランダムデータは、ダンプ形式ではなくそのまま 表示しています。そのため表示するのに不適当と思われる 2バイトデータ列を無視しているのであって、あくまでも本 プログラムはDICFILEの数学的性質のみに着目しているわけ ですから、それがシフトJIS文字だとかいうことも含めて 内容には関知していません(ソースプログラムを見れば明らか ですね)。 ・上記範囲にある2バイトデータの間に1バイトデータがはさ まっている場合の挙動については厳密にデバッグしてません。 ● 動作環境/言語 MS-DOS実行形式: MS-DOS 本プログラムはLSI-C86 試食版でコンパイルしました。 エル・エス・アイジャパンには感謝いたします。 ソース: ANSI Cコンパイラ 本プログラムの作成・デバッグ・動作テストは、マハーポーシャ社 製SUPER SLIM SUBNOTE 500 (IBM社製 PC/AT互換ラップトップ機、 CPU486DX4 (100MHz)、メモリ32MB)というハードウェア、またOS はマイクロソフト社製MS-DOS Version 6.20という環境で行ない ました。どうでもいいことですけども。本当です。いや誰も嘘だ なんていってませんね。 ● 責任 作者: 匿名希望。 1995年4月1日 (version 0.1)〜1995年4月3日 (version 0.3) 正体不明のプログラムですんで、ソースを付けたのに信用できないとか、 ソースとオブジェクトが異なっているんではないかとか疑う人は、 別に使ってくれなくてもいいです(笑)。 ● 配布について(重要(笑)) ・DICFILEとして、hoge.mko、kusuri.mkoを付属しておきました。 hoge.mkoは最近の週刊誌に掲載された任意のカタカナ語を列挙 したものであり、kusuri.mkoは市販薬の名称などです。実在の 人物・団体・商品名とは関係ありますが、ここでは科学実験の データに使っているだけであり、だからどうしたというものでは 当然、ありません。したがって当たり前ですが、著作権や商標権の 侵害、名誉毀損などをしているわけはありません。 ・作者は本アーカイブに含まれる全プログラム、ファイルの著作権は 放棄しま……するそうです(笑)。自由に配布・転載・販売・改変 して下さってかまいません。そうです(笑)。雑誌・書籍の付録 に収録するのは構いません。作者本人はロシアに旅立っているとか 都内ホテルに隠れているという噂があり、連絡が取れないので どっちみち無断で転載して下さい。 ・ただし、紹介は一切禁止いたします。すなわち、雑誌・書籍・新聞・ 放送などはもちろん、ネットワーク・口コミにて、『このプロ グラムはどんなものか』を他人に紹介する事は一切、禁止いたしま、 するそうです(笑)。