2進数で書かれた平方数は通常の言語ですか?


8

バイナリ形式(1、100、1001、...)で記述されたすべての平方数(1、4、9、16、...)が通常の言語であるかどうかを判断しようとして問題が発生しています。

これらの数値の一般的なパターンを見つけるためにいくつかの試みを行った後、正方形番号n2場合、n2mod4は0または1に等しいため、4つの状態のDFAグラフを描画して、この言語を認識します。しかし、どうやら、私が描いたDFAは、実際には問題の平方数言語のスーパーセットを認識しています。ここで行き詰まっています。

誰もがこの問題についていくつかの手がかりを与えることができますか?通常の言語ではない場合、どうすれば証明できますか?

私はまた、この種の質問に将来どのように最善の方法でアプローチすべきかを知ることにも非常に興味があります。多くの場合、オートマトンがすでに見たもの(ようなaibi)を追跡しなければならないという直感がある場合、オートマトンが計算するために必要な未確定の状態があり、したがって有限ではありません。または定期的。次に、Pumping補題を使用して、それが規則的でないことを証明できます。ただし、この言語がまだ一般的であるかどうかはわかりません。そのため、次に何をすればよいのか本当にわかりません。

ありがとう!


たとえば、が、は正方形ではないため、入力がまたは modに一致しているかどうかを確認するだけでは十分ではありません。私の推測では、それが正方形であるかどうかを知るには入力全体を覚える必要があるように感じるので、言語は規則的ではありません(これは単なる直感であり、証明のようなものではありません)。01451mod45
David Richerby 2017年

1
質問の「一般的なアプローチ」の部分は、参考質問でカバーされています
David Richerby 2017年

@DavidRicherbyそれらは非常に一般的です。私たちは、算術で定義されたセットに、この特定の問題の一般化を持っていたとは思わないの前に
Gilles 'SO-悪をやめる'

回答:


9

これがハイテクソリューションです。言語を示します。Szalayは、 ここから、が縮小することにより、が規則的でないことを示すのは非常に簡単です。L

L10101={10n10n+21:n0}{110001,1000010001}.
L{anbn:n0}

「からの還元」?
Omar

これは非公式な用語です既知の不規則性を減らすことです。anbn
Yuval Filmus

2

まあ、これは私がこの答えを書き換えるのは3回目です。ユーザーYuval Filmusは、私が以前の2つのバージョンで行った2つの非常にばかげた間違いを指摘しました。

さて、ようやく問題の簡単な解決策を見つけました。うまくいくと思います。

まず、このタイプの単語があります。

1(00)p1(00)p001

平方数です。

証明:

私は正方形の数に関する情報を調べた後、「中心の八角形の数」について見つけました。これは、8の倍数の層で形成されるが、最初の層では形成されない数です。最初のレイヤーは1、2番目の8、3番目の16などです。

したがって、各レイヤーには前のレイヤーよりも「8」多い数があります。中央の八角形の数字の8の数は、ガウスの式を使用して計算できます。

n2+n2

次に、8を掛けて1を加えます。これは、最初のレイヤーがドットのみであるためです。

8(n2+n)2+1

単純化:

4(n2+n)+1

この式により、nごとに奇数の平方数が得られます。

数4と4のすべての累乗の式を計算します。

最初に数値を二乗します。これにより、数値のゼロが2倍になります。次に、製品に番号を追加します。これにより、右から開始して位置に「1」が配置されます。バイナリワードの長さです。|n|/2|n|

現在、この形式の単語があります。

1(00)p1(00)p0

4を掛けると、数値の終わりに2つのゼロが追加されます。最後に1を合計します。終わりました。

ポンピング

に設定しました。i=0

まず簡単なケース

私たちは聞かせた場合、空、そして私たちはナンバーワンと1つ以上のゼロを取ります。これにより、ハミングウェイト2の単語が得られます(1の数は2です)。ハミングウェイト2、9という不均一な数しかありません(フォーム2n + 1の唯一の奇数の平方数は9 です。これはウィキペディアで見ました:ここを参照してください)。私たちがポンピングしているすべての数は9よりも大きいので、このケースを証明しました。x

ハードケース

最初の「1」をその場所に置き、ゼロのみを取り出します。最大でゼロを取り出すことができます。p1

単語は次のようになります。

10(00)m1(00)n001

ここmnは1以上の整数であり、n > mmnn>m

私は最初に得られた数が四角であると信じ、次にそれが偽であることを示します:

すべての奇数平方数はこの式で取得できることがわかっているので、

4(n2+n)+1

数値の分解を開始し、1を減算します。この単純な方法では、最後の1をゼロに設定し、次に4で除算します。これにより、バイナリワードの終わりにある2つのゼロが削除されます。

次に、次のような単語があります。

n、および mは、1以上で n > mの整数です。これらの単語は、完全な単語の接頭辞です。10(00)m1(00)n0nmn>m

この連鎖は平方数の一部であると考えているため、この式を実行して単語を形成する必要がありました。

(n2+n)

できませんn

この式をもう一度見てみましょう。

n2+n

私たちが送り出した単語は平方数であると信じているからです。私たちはを汲み上げた単語と呼び、それを持っています:m

m=n2+n

また、は2つの2進数m 1m 2の合計として表すことができ、それぞれ2の累乗です。そして私たちはそれを持っていますmm1m2およびm1>m2m1<m2m1>m2

最初に気づくのは、m 2未満でなければならないということです。これは、m 2m 1の平方根よりも大きいためです。nm 2と等しい場合、n 2mよりも大きくなります。nm2m2m1nm2n2m

これで、偶数の2進数を2乗すると、2乗した数の最初の「1」の右側に、元の数より「0が多い」ことがわかります。したがって、内の「右端のもの」は、n内の「右端のもの」の左側にあります。nn 2に追加すると、n 2 + n内の「右端のもの」がnの「右端のもの」になります。以降、N未満であるM 2n 2 + n内 の「右端」が「右端」の右側にある メートルで。したがってn2nnn2n2+nnnm2n2+nm。しかし、 n 2 + n = mと言ったので、矛盾が生じ、 nが偶数になることはありません。mn2+nn2+n=mn

は不均一にできませんn

繰り返しになりますが、nn 2に追加することによって作成された数値であるため、m = n 2 + nmnn2m=n2+n

次に、ことがわかります。それの訳は:(n+1)2(n+1)=n2+n

;(n+1)2(n+1)=n2+2n+1n1

その後:

(n+1)2(n+1)=n2+n

これを見る別の方法は、を長さnの辺を持つ正方形として想像することです。この正方形は、サイズ1の小さい正方形によって形成されます。次に、サイズ1の正方形をn個前の正方形に追加すると、前の正方形は、辺がnおよびn + 1の長方形になります。ここで、n + 1 2は、長さがn + 1の辺を持つ別の正方形として想像できます。この正方形は、サイズ1の小さい正方形によっても形成されます。n + 1の正方形を削除すると、辺がnの長方形になります。n2nnnn+1(n+1)2n+1n+1nおよびn+1

我々は、その持っている偶数であると証明が全ての奇数番号の前と同じ次のN未満のM 2 - 1n+1nm21

この場合も、偶数の2進数を2乗すると、元の数値よりも最初の「1」の右側に「より多くのゼロ」があることになります。したがって、内の「右端のもの」は、n + 1内の「右端のもの」の左側にあります。n + 1からn + 1 2を引くと、n 2 + n内の「右端の1」がn + 1内の「右端の1」になります。(n+1)2n+1n+1(n+1)2n2+nn+1n+1n 2 + n内 の「右端の1つ」が mの「右端の1つ」の右側にあることがわかります。m2n2+nm

もしn=m21

ここでも、です。以来、M 2 2M 2乗)が2の累乗である数であり、それは、単一の先頭「1」、次にゼロを有しています。ときに我々 substract メートル2M 2 2、我々はすべてのビットに0を回っているの左端の桁の左側メートル2の内部のM 2 2n2+n=(n+1)2(n+1)m22m2m2m22m2m22 「1」になり、結果として得られる数は、ポンプしている単語とは異なります。少なくとも1つの間に「ゼロの分離」があるはずです。

したがって、です。しかし、n 2 + n = mと言ったので矛盾が生じ、nが不均一になることはありません。mn2+nn2+n=mn

以下のように偶数または不均一であるcan't、我々は持っているn個の整数としてdoesn'tのが存在します。したがって、ポンプした単語は、奇数平方数の式の積ではありません。私たちがポンピングしているすべての単語は奇数なので、それらは平方数にすることはできません。nn


1
あなたは、に、ポンピング補題を適用することはできませんので、あなたの言語には、定期的ではないことを示すために1 00 、pはでき汲み上げられます。同じことが逆言語の00 p 1にも当てはまります。1(00)p1(00)p (00)p1
Yuval Filmus

ポンピングレンマではを選択できません。ポンピングレンマは、一部のyが機能することのみを示しています。言語が規則的でないことを示すためにはyが機能しないことを示す必要があります。y y y
Yuval Filmus

@yuvalFilmus正解です
ロティア

2
2で除算しても偶数が残ると述べていますが、常にそうであるとは限りません。
Yuval Filmus

2
過去2日間に約15の編集を行ったようです。あなたが答えを改善したいのは素晴らしいことです。ただし、ここで編集するたびにこの質問をトップページの上部に押し続けるのは、他の質問には少し不公平かもしれません。編集をバッチ処理(おそらく、stackedit.comを使用してオフラインで書き込むなど)できるので、1日あたりの編集はほんのわずかです。回答を編集して改善するのをやめたくはありませんが、幸せなメディアが何かあるのではないかと思っています。聞いてくれてありがとう!
DW
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.