qnighy.hatenablog.com/entry/2015/11/… の回文のようでいてそうでないPEGが一体何を表しているのか気になってちょっとだけ考えてみたら、凄く珍妙な言語になってることに気づいた…。 gist.github.com/kmizu/d057ba7d… #peg
2015-11-13 01:27:30@kmizu babbabとかはTrueでbaaaabとかはFalseなので、「2回連続するなら折り返しにも2回、そうでないなら1回」みたいな感じですかね・・・
2015-11-13 01:33:09@chiguri babbabとかはサンプルに入れてなかったですね。例をもうちょっと網羅的にして考えなおす必要がありそうです。ありがとうございます。
2015-11-13 01:45:14入力を網羅的にしたら、こんな gist.github.com/kmizu/d057ba7d… 感じになった。ふむー。 #peg
2015-11-13 02:13:54長さ8文字までやってみたが、うーん…。わかったようなわからないような。 gist.github.com/kmizu/d057ba7d… #peg
2015-11-13 17:07:50文字数が増えてくると、手作業でやるとしんどくなってきたので回文ジェネレータ作った。 gist.github.com/kmizu/d057ba7d… #peg
2015-11-13 19:02:01さらにプログラム修正してみた gist.github.com/kmizu/d057ba7d…
2015-11-13 19:07:23@kmizu 折り返し時点でなんらかの「きりの良さ」がないといけない気がするんですが、イマイチどういうものかぴんとこないんですよねえ・・・
2015-11-13 19:09:41@chiguri そうですねえ。類似の文法 A <- "a" A "a" / "" のときの経験から察するに、長さが2の冪乗-nのときががなんか関係してる気がするのですが…
2015-11-13 19:11:15形式としては、 {a^{2**n - 2}}∪{b^{2**n - 2}}∪{aとb両方が出現する何らかの言語} な感じになるはずなんだな、たぶん。
2015-11-14 02:14:38gist.github.com/kmizu/d057ba7d… 眺めててピンと来たのでメモっておこう。回文に含まれているaまたはbの部分列が2**n - 2回のみ出現する場合にはマッチしている。たぶんこれで確定だと思うけど、簡潔に条件書くにはどうすればいいんだ…。
2015-11-14 03:07:02と思ったけど、 checkPEG grammar "abaabaabaaba" = False のケースがあるから、条件足りないかorz 列としての連続性を考えずに、単純にaの出現回数、bの出現回数で考えればOKかな?(要考察)
2015-11-14 03:09:29ちゃうちゃう(自己ツッコミ)。ここで、記号の「連続」を、記号の隣接でとらえたらダメで、「外から囲んで」連続しているかが問題だ。 "abaabaabaaba" なんかは、aa ..... aa で4個のaが連続しているようにとらえるべき。お。なんか見えてきた気がするぞ。
2015-11-14 03:13:53「外側から囲む」連続性(何というのが正しいのかちょっとわからない)で考えると、 checkPEG grammar "baaaaaaaab" = False checkPEG grammar "abaaaaaaba" = True になる理由も説明つく。
2015-11-14 03:15:27前者はaが8カウント(2**n - 2回の繰り返しでない)、後者は内側のaが6カウント(2** n -2回の繰り返し)、その外側のaが2カウント、その外側のbが2カウントとなっており、うまく当てはまっている。
2015-11-14 03:17:23あとは、この仮説をプログラムに落として、自動生成した回文に食わせればだいたいあってそうかの判定はできるかな。
2015-11-14 03:18:08@kmizu checkPEG grammar "abaabbaaabbbaaaabbbbaabbbbaaaabbbaaabbaaba" = True こんなんどうでしょう。真ん中付近の4つずつあたりがくせ者かと。
2015-11-14 03:19:24うん、a^{i}b^{i}を1からnまで並べて、そのあとにa一つだけであとは折り返すやつを作ってみたらTrueになりそう?
2015-11-14 03:23:57記号1種類のときに出てきた、2の冪乗 - 2回の繰り返しという要素が、記号の種類増やすとどっか行ってしまった感じが釈然としなかったが、これなら納得でき、そうだ。
2015-11-14 03:27:03