そずべねぐ/エントリ集合演算について
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*エントリ集合演算について [#e6d7a0af]
アリス「ねぇ、ボブ。」~
ボブ「どうしたんだい、アリス?」~
アリス「華和梨のエントリ集合演算を使ってみたら、使う前と...
ボブ「HAHAHA! しょうがないなあ、アリスは。じゃあ...
アリス「さすがボブね!」
*目次 [#ccdebfc4]
#contents
*エントリ集合演算の基礎 [#b1c1027a]
まず、以下のような置換子を含まないエントリ定義が存在する...
野菜: きゅうり, なす, スイカ, トマト
果物: りんご, みかん, なし, スイカ, トマト
**和集合演算'+' [#s0627fbe]
和集合演算'+'では、演算子'+'の左辺のエントリに登録されて...
「野菜」、「果物」のエントリに対して、${野菜 + 果物}とい...
演算子'+'の左辺のエントリに登録されている文と右辺のエント...
左辺=「野菜」エントリに登録されている「きゅうり」、「な...
右辺=「果物」エントリに登録されている「りんご」、「みか...
なので、${野菜 + 果物}の結果は、「野菜」エントリと「果物...
きゅうり, なす, スイカ, トマト, りんご, みかん、なし
の7つの文からなる集合から一つの文が等確率なランダムに選...
実際に3万回実施してみた結果は下記の通り。7つのエントリ...
|文|回数|
|きゅうり|4168回|
|なす|4415回|
|スイカ|4290回|
|トマト|4297回|
|りんご|4246回|
|みかん|4243回|
|なし|4341回|
ちなみに、出てくる文の候補は同じことであっても、
野菜か果物: ${野菜}, ${果物}
のエントリ呼び出しを実施したときと、${野菜 + 果物}のエン...
これは、${野菜か果物}では、${野菜}か${果物}が1/2ずつの...
実際にやってみた結果は以下の通り。
|文|回数|
|きゅうり|3690回|
|なす|3747回|
|スイカ|6797回|
|トマト|6774回|
|りんご|2995回|
|みかん|2970回|
|なし|3027回|
~
**差集合演算'-' [#n49393b6]
差集合演算'-'では、演算子'-'の左辺のエントリに登録されて...
「野菜」、「果物」のエントリに対して、${野菜 - 果物}とい...
演算子'-'の左辺のエントリに登録されている文と右辺のエント...
左辺=「野菜」エントリに登録されている「きゅうり」、「な...
右辺=「果物」エントリに登録されている「りんご」、「みか...
なので、${野菜 - 果物}の結果は、「野菜」エントリに登録さ...
きゅうり, なす
の2つの文から一つが等確率なランダムに選ばれます。実際に...
|文|回数|
|きゅうり|15036回|
|なす|14964回|
~
**積集合演算'&' [#aafdb5ef]
積集合演算'&'では、演算子'&'の左辺のエントリに登録されて...
「野菜」、「果物」のエントリに対して、${野菜 & 果物}とい...
左辺=「野菜」エントリに登録されている「きゅうり」、「な...
右辺=「果物」エントリに登録されている「りんご」、「みか...
なので、${野菜 & 果物}の結果は、「野菜」エントリと「果物...
スイカ、トマト
の2つの文から一つが等確率なランダムに選ばれます。実際に...
|文|回数|
|スイカ|15077回|
|トマト|14293回|
~
**複数のエントリ集合演算子からなる式 [#h39ca56d]
エントリ集合演算の演算子の左辺や右辺にはエントリ名だけで...
野菜: きゅうり, なす, スイカ, トマト
果物: りんご, みかん, なし, スイカ, トマト
ナス属: なす, トマト
というエントリが存在する場合、${野菜 - 果物 & ナス属}とい...
このとき、普通の算数の式で掛け算が足し算や引き算に優先す...
***1.「果物 & ナス属」を実施する。 [#ga78b483]
エントリ集合演算子"&"の左辺と右辺に登録されている文はそれ...
左辺=「果物」エントリに登録されている「りんご」、「みか...
右辺=「ナス属」エントリに登録されている「なす」、「トマ...
したがって、このエントリ集合演算の結果できる文の集合は左...
トマト
になります。
***2. 「野菜 - 「果物 & ナス属」の結果」を実施する。 [#g3...
次に、「野菜」エントリに登録されている文の集合と「果物 & ...
左辺=「野菜」エントリに登録されている「きゅうり」、「な...
右辺=「果物 & ナス属」のエントリ集合演算結果である「ト...
したがって、このエントリ集合演算の結果できる集合は、左辺...
きゅうり、なす、スイカ
の集合になります。3万回実施してみた結果は以下の通り。
|文|回数|
|きゅうり|10106回|
|なす|9916回|
|スイカ|9978回|
~
>次からが本題
*置換子を含むエントリに対するエントリ集合演算 [#a5ebfb10]
エントリに登録されている文が置換子(${ほげ}などのエントリ...
-"${柑橘類}"などのように単独のエントリ呼び出しからなる文...
-"${状態}バナナ"などのように置換子を含む文は展開しない。
というわけで、たとえば、
うにゅう族: うにゅう, ${うにゅう以外}, ${カラー}うにゅう
カラー: 黒, どどめ色, レインボー, 白
うにゅう以外: ただきち, うにゃん
というエントリが存在していて、これがエントリ集合演算の左...
うにゅう, ただきち, うにゃん, ${カラー}うにゅう
という文の集合として扱われます。~
これにより、以下の2つの事象が発生することに注意してくだ...
**文の出現確率に関する事象 [#ua3e40e1]
うにゅう族: うにゅう, ${うにゅう以外}, ${カラー}うにゅう
カラー: 黒, どどめ色, レインボー, 白
うにゅう以外: ただきち, うにゃん
さくら側: さくら, 双葉, エミリ
というエントリ群が存在したとき、${さくら側 + うにゅう族}...
うにゅう, ただきち, うにゃん, ${カラー}うにゅう, さくら,...
という7つの文の集合となります。~
結果、黒うにゅう、どどめ色うにゅう、レインボーうにゅう、...
実際にやってみた結果も以下の通り。
|文|回数|
|うにゅう|4307回|
|ただきち|4316回|
|うにゃん|4287回|
|黒うにゅう|1135回|
|白うにゅう|1039回|
|どどめ色うにゅう|1021回|
|レインボーうにゅう|1086回|
|さくら|4238回|
|エミリ|4240回|
|双葉|4331回|
というわけで、同じ置換子を含む文でも、ただ一つの置換子か...
**演算対象に関する事象 [#x4293439]
うにゅう族: うにゅう, ${うにゅう以外}, ${カラー}うにゅう
カラー: 黒, どどめ色, レインボー, 白
うにゅう以外: ただきち, うにゃん
特別なうにゅう: 白うにゅう, 黒うにゅう
というエントリ群が存在したとき、${うにゅう族 - 特別なうに...
このとき、"-"演算子の左辺と右辺の文の集合は以下のようにな...
左辺=うにゅう, ただきち, うにゃん, ${カラー}うにゅう
右辺=白うにゅう, 黒うにゅう
これらの文の集合に対する差集合演算の結果は、
うにゅう, ただきち, うにゃん, ${カラー}うにゅう
となります。この中で、「${カラー}うにゅう」という文は、そ...
つまり、「特別なうにゅう」エントリに含まれる文であるはず...
|文|回数|
|うにゅう|7523回|
|ただきち|7420回|
|うにゃん|7479回|
|どどめ色うにゅう|1901回|
|レインボーうにゅう|1875回|
|白うにゅう|1912回|
|黒うにゅう|1890回|
とまあ、この通り。
同じことは、積集合演算でも言えるので、${うにゅう族 & 特別...
*ところで3万回とかってどうやって試したんだよ! [#v70f4c5f]
こうやりました。
テスト実施: $(呼出回数テスト テスト 30000)
テスト: ${野菜 + 果物}
野菜: きゅうり, なす, スイカ, トマト
果物: りんご, みかん, なし, スイカ, トマト
=kis
function 呼出回数テスト $(
.cleartree テスト結果;
loop $@arg[2] $(
.setstr @tmp ${$@arg[1]};
.inc テスト結果.${@tmp};
);
.clear @テスト結果表示;
.listtree @テスト結果表示 テスト結果;
foreach @i @テスト結果表示 $(
.echo ${@i}":"${${@i}}"回\n";
);
);
=end
*コメント [#ibb7e2b5]
#comment
終了行:
*エントリ集合演算について [#e6d7a0af]
アリス「ねぇ、ボブ。」~
ボブ「どうしたんだい、アリス?」~
アリス「華和梨のエントリ集合演算を使ってみたら、使う前と...
ボブ「HAHAHA! しょうがないなあ、アリスは。じゃあ...
アリス「さすがボブね!」
*目次 [#ccdebfc4]
#contents
*エントリ集合演算の基礎 [#b1c1027a]
まず、以下のような置換子を含まないエントリ定義が存在する...
野菜: きゅうり, なす, スイカ, トマト
果物: りんご, みかん, なし, スイカ, トマト
**和集合演算'+' [#s0627fbe]
和集合演算'+'では、演算子'+'の左辺のエントリに登録されて...
「野菜」、「果物」のエントリに対して、${野菜 + 果物}とい...
演算子'+'の左辺のエントリに登録されている文と右辺のエント...
左辺=「野菜」エントリに登録されている「きゅうり」、「な...
右辺=「果物」エントリに登録されている「りんご」、「みか...
なので、${野菜 + 果物}の結果は、「野菜」エントリと「果物...
きゅうり, なす, スイカ, トマト, りんご, みかん、なし
の7つの文からなる集合から一つの文が等確率なランダムに選...
実際に3万回実施してみた結果は下記の通り。7つのエントリ...
|文|回数|
|きゅうり|4168回|
|なす|4415回|
|スイカ|4290回|
|トマト|4297回|
|りんご|4246回|
|みかん|4243回|
|なし|4341回|
ちなみに、出てくる文の候補は同じことであっても、
野菜か果物: ${野菜}, ${果物}
のエントリ呼び出しを実施したときと、${野菜 + 果物}のエン...
これは、${野菜か果物}では、${野菜}か${果物}が1/2ずつの...
実際にやってみた結果は以下の通り。
|文|回数|
|きゅうり|3690回|
|なす|3747回|
|スイカ|6797回|
|トマト|6774回|
|りんご|2995回|
|みかん|2970回|
|なし|3027回|
~
**差集合演算'-' [#n49393b6]
差集合演算'-'では、演算子'-'の左辺のエントリに登録されて...
「野菜」、「果物」のエントリに対して、${野菜 - 果物}とい...
演算子'-'の左辺のエントリに登録されている文と右辺のエント...
左辺=「野菜」エントリに登録されている「きゅうり」、「な...
右辺=「果物」エントリに登録されている「りんご」、「みか...
なので、${野菜 - 果物}の結果は、「野菜」エントリに登録さ...
きゅうり, なす
の2つの文から一つが等確率なランダムに選ばれます。実際に...
|文|回数|
|きゅうり|15036回|
|なす|14964回|
~
**積集合演算'&' [#aafdb5ef]
積集合演算'&'では、演算子'&'の左辺のエントリに登録されて...
「野菜」、「果物」のエントリに対して、${野菜 & 果物}とい...
左辺=「野菜」エントリに登録されている「きゅうり」、「な...
右辺=「果物」エントリに登録されている「りんご」、「みか...
なので、${野菜 & 果物}の結果は、「野菜」エントリと「果物...
スイカ、トマト
の2つの文から一つが等確率なランダムに選ばれます。実際に...
|文|回数|
|スイカ|15077回|
|トマト|14293回|
~
**複数のエントリ集合演算子からなる式 [#h39ca56d]
エントリ集合演算の演算子の左辺や右辺にはエントリ名だけで...
野菜: きゅうり, なす, スイカ, トマト
果物: りんご, みかん, なし, スイカ, トマト
ナス属: なす, トマト
というエントリが存在する場合、${野菜 - 果物 & ナス属}とい...
このとき、普通の算数の式で掛け算が足し算や引き算に優先す...
***1.「果物 & ナス属」を実施する。 [#ga78b483]
エントリ集合演算子"&"の左辺と右辺に登録されている文はそれ...
左辺=「果物」エントリに登録されている「りんご」、「みか...
右辺=「ナス属」エントリに登録されている「なす」、「トマ...
したがって、このエントリ集合演算の結果できる文の集合は左...
トマト
になります。
***2. 「野菜 - 「果物 & ナス属」の結果」を実施する。 [#g3...
次に、「野菜」エントリに登録されている文の集合と「果物 & ...
左辺=「野菜」エントリに登録されている「きゅうり」、「な...
右辺=「果物 & ナス属」のエントリ集合演算結果である「ト...
したがって、このエントリ集合演算の結果できる集合は、左辺...
きゅうり、なす、スイカ
の集合になります。3万回実施してみた結果は以下の通り。
|文|回数|
|きゅうり|10106回|
|なす|9916回|
|スイカ|9978回|
~
>次からが本題
*置換子を含むエントリに対するエントリ集合演算 [#a5ebfb10]
エントリに登録されている文が置換子(${ほげ}などのエントリ...
-"${柑橘類}"などのように単独のエントリ呼び出しからなる文...
-"${状態}バナナ"などのように置換子を含む文は展開しない。
というわけで、たとえば、
うにゅう族: うにゅう, ${うにゅう以外}, ${カラー}うにゅう
カラー: 黒, どどめ色, レインボー, 白
うにゅう以外: ただきち, うにゃん
というエントリが存在していて、これがエントリ集合演算の左...
うにゅう, ただきち, うにゃん, ${カラー}うにゅう
という文の集合として扱われます。~
これにより、以下の2つの事象が発生することに注意してくだ...
**文の出現確率に関する事象 [#ua3e40e1]
うにゅう族: うにゅう, ${うにゅう以外}, ${カラー}うにゅう
カラー: 黒, どどめ色, レインボー, 白
うにゅう以外: ただきち, うにゃん
さくら側: さくら, 双葉, エミリ
というエントリ群が存在したとき、${さくら側 + うにゅう族}...
うにゅう, ただきち, うにゃん, ${カラー}うにゅう, さくら,...
という7つの文の集合となります。~
結果、黒うにゅう、どどめ色うにゅう、レインボーうにゅう、...
実際にやってみた結果も以下の通り。
|文|回数|
|うにゅう|4307回|
|ただきち|4316回|
|うにゃん|4287回|
|黒うにゅう|1135回|
|白うにゅう|1039回|
|どどめ色うにゅう|1021回|
|レインボーうにゅう|1086回|
|さくら|4238回|
|エミリ|4240回|
|双葉|4331回|
というわけで、同じ置換子を含む文でも、ただ一つの置換子か...
**演算対象に関する事象 [#x4293439]
うにゅう族: うにゅう, ${うにゅう以外}, ${カラー}うにゅう
カラー: 黒, どどめ色, レインボー, 白
うにゅう以外: ただきち, うにゃん
特別なうにゅう: 白うにゅう, 黒うにゅう
というエントリ群が存在したとき、${うにゅう族 - 特別なうに...
このとき、"-"演算子の左辺と右辺の文の集合は以下のようにな...
左辺=うにゅう, ただきち, うにゃん, ${カラー}うにゅう
右辺=白うにゅう, 黒うにゅう
これらの文の集合に対する差集合演算の結果は、
うにゅう, ただきち, うにゃん, ${カラー}うにゅう
となります。この中で、「${カラー}うにゅう」という文は、そ...
つまり、「特別なうにゅう」エントリに含まれる文であるはず...
|文|回数|
|うにゅう|7523回|
|ただきち|7420回|
|うにゃん|7479回|
|どどめ色うにゅう|1901回|
|レインボーうにゅう|1875回|
|白うにゅう|1912回|
|黒うにゅう|1890回|
とまあ、この通り。
同じことは、積集合演算でも言えるので、${うにゅう族 & 特別...
*ところで3万回とかってどうやって試したんだよ! [#v70f4c5f]
こうやりました。
テスト実施: $(呼出回数テスト テスト 30000)
テスト: ${野菜 + 果物}
野菜: きゅうり, なす, スイカ, トマト
果物: りんご, みかん, なし, スイカ, トマト
=kis
function 呼出回数テスト $(
.cleartree テスト結果;
loop $@arg[2] $(
.setstr @tmp ${$@arg[1]};
.inc テスト結果.${@tmp};
);
.clear @テスト結果表示;
.listtree @テスト結果表示 テスト結果;
foreach @i @テスト結果表示 $(
.echo ${@i}":"${${@i}}"回\n";
);
);
=end
*コメント [#ibb7e2b5]
#comment
ページ名: