Là số vuông được viết trong nhị phân là một ngôn ngữ thông thường?


8

Tôi đang gặp vấn đề khi cố gắng xác định xem tất cả các số vuông (1, 4, 9, 16, ...) được viết ở dạng nhị phân (1, 100, 1001, ...) có phải là ngôn ngữ thông thường hay không.

Sau một số nỗ lực tìm mô hình chung của các số đó, tôi phát hiện ra rằng với bất kỳ số vuông n2 , đều bằng 0 hoặc 1, và vì vậy tôi có thể vẽ biểu đồ DFA với 4 trạng thái để nhận ra ngôn ngữ này. Nhưng rõ ràng, DFA tôi đã vẽ thực sự nhận ra một siêu ngôn ngữ của số vuông được đề cập. Tôi bị kẹt ở đây.n2mod4

Bất cứ ai cũng có thể cho tôi một số manh mối về vấn đề này? Nếu đó không phải là ngôn ngữ thông thường, tôi nên chứng minh nó như thế nào?

Tôi cũng rất quan tâm để biết làm thế nào tôi nên tiếp cận với loại câu hỏi này một cách tốt nhất trong tương lai. Tôi biết rằng trong nhiều trường hợp, nếu chúng ta có trực giác rằng automata phải theo dõi những gì đã thấy (như ), thì sẽ có một trạng thái không xác định cần thiết cho automata để tính toán, do đó không phải là hữu hạn hoặc thường xuyên. Sau đó chúng ta có thể sử dụng bổ đề Bơm để chứng minh rằng nó không thường xuyên. Tuy nhiên, tôi không thể biết ngôn ngữ này có thường xuyên hay không, vì vậy tôi thực sự không biết phải làm gì tiếp theo.aibi

Cảm ơn!


Chắc chắn là không đủ để kiểm tra xem đầu vào của bạn có phù hợp với hoặc 1 mod 4 hay không , ví dụ: nhưng không phải là một hình vuông. Tôi đoán là ngôn ngữ không thường xuyên, vì cảm giác như bạn cần phải nhớ toàn bộ đầu vào để biết nó có phải là hình vuông hay không (đây chỉ là một trực giác và không có gì giống như một bằng chứng). 01451mod45
David Richerby

1
Phần "cách tiếp cận chung" trong câu hỏi của bạn được bao phủ bởi các câu hỏi tham khảo của chúng tôi .
David Richerby

@DavidR Richby Những cái đó rất chung chung. Tôi không nghĩ rằng chúng ta đã khái quát hóa câu hỏi cụ thể này thành các bộ được xác định bởi số học trước đó .
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


9

Đây là một giải pháp công nghệ cao. Biểu thị ngôn ngữ của bạn bằng cách . Szalay cho thấy L 10 * 10 * 1 = { 10 n 10 n + 2 1 : n 0 } { 110.001 , 1000010001 } . Từ đây, thật dễ dàng để chỉ ra rằng L không thường xuyên, bằng cách giảm xuống { a n b n : n 0 } .L

L10*10*1= ={10n10n+21:n0}{110001,1000010001}.
L{mộtnbn:n0}

"Giảm từ"?
Omar

Đó là một thuật ngữ không chính thức - bằng cách giảm sự bất thường đã biết của . anbn
Yuval Filmus

2

Chà, đây là lần thứ ba tôi viết lại câu trả lời này. Người dùng Yuval Filmus đã chỉ ra hai lỗi rất ngớ ngẩn mà tôi đã mắc phải trong hai phiên bản trước.

Vâng cuối cùng tôi đã tìm thấy một giải pháp đơn giản cho vấn đề. Tôi nghĩ rằng nó hoạt động.

Đầu tiên chúng ta có những từ thuộc loại này:

1(00)p1(00)p001

Là số vuông.

Bằng chứng:

Tôi đã tìm kiếm thông tin về các số vuông và sau đó tôi tìm thấy về "số bát giác trung tâm" là các số được hình thành bởi các lớp bội số của tám, nhưng không phải là lớp đầu tiên. Lớp đầu tiên là một, tám thứ hai, mười sáu thứ ba và như vậy.

Vì vậy, mỗi lớp có "tám" nhiều hơn lớp trước. Số lượng các số trong một số bát giác trung tâm có thể được tính bằng cách sử dụng công thức gauss:

n2+n2

Sau đó chúng tôi nhân với tám và thêm một, điều này là do lớp đầu tiên chỉ là một dấu chấm.

8(n2+n)2+1

Đơn giản là:

4(n2+n)+1

Công thức đó cho chúng ta các số vuông lẻ cho mọi n.

Tôi sẽ tính toán công thức cho số bốn và tất cả các lũy thừa của bốn.

Đầu tiên chúng ta bình phương số, điều này chỉ đơn giản là nhân đôi số không của số. Sau đó, chúng tôi thêm số vào sản phẩm. Điều này đặt một "một" ở vị trí bắt đầu từ bên phải. | n | là độ dài của từ nhị phân.|n|/2|n|

Ngay bây giờ chúng tôi có các từ của hình thức này:

1(00)p1(00)p0

Chúng tôi nhân với bốn, điều này chỉ đơn giản là thêm hai số 0 ở cuối số. Cuối cùng chúng tôi tổng hợp một. Chúng ta xong rồi.

Bơm

Tôi đặt .i=0

Đầu tiên là trường hợp dễ dàng

Nếu chúng ta để trống, thì chúng ta lấy số một và một hoặc nhiều số không. Điều này cung cấp cho chúng tôi các từ với hamming trọng lượng hai (số lượng là hai). Chỉ có một số không đồng đều với trọng số hai, số chín (số vuông lẻ duy nhất có dạng 2n + 1 là 9, tôi đã thấy điều này trong wikipedia: xem tại đây ). Vì tất cả các con số chúng tôi đang bơm đều lớn hơn chín, chúng tôi đã chứng minh trường hợp này.x

Trường hợp khó khăn

Chúng tôi để "cái" đầu tiên vào vị trí của nó và chúng tôi chỉ lấy ra số không. Chúng tôi có thể đưa ra tối đa số không.p1

Từ này sẽ trông như thế này:

.10(00)m1(00)n001

Trong đó n là các số nguyên lớn hơn hoặc bằng một và n > mmnn>m

Trước tiên tôi sẽ tin rằng con số thu được là một hình vuông, sau đó tôi sẽ chỉ ra rằng những sai số:

Vì chúng ta biết rằng tất cả các số vuông lẻ có thể thu được bằng công thức này:

4(n2+n)+1

Chúng tôi bắt đầu phân tách số, chúng tôi trừ một, đơn giản này đặt số cuối cùng thành 0 và sau đó, chúng tôi chia cho bốn, điều này sẽ loại bỏ hai số 0 ở cuối từ nhị phân.

Sau đó, chúng tôi sẽ có những từ như thế này:

, n m là các số nguyên lớn hơn hoặc bằng một và n > m . Những từ này là một tiền tố của từ hoàn chỉnh.10(00)m1(00)n0nmn>m

Vì chúng tôi tin rằng chuỗi này là một phần của số vuông, từ này phải được hình thành bằng cách thực hiện công thức này:

(n2+n)

thể đượcn

Chúng ta sẽ xem lại công thức này:

n2+n

Vì chúng tôi tin rằng những từ chúng tôi đã bơm là số vuông. Chúng tôi gọi những từ chúng tôi đã bơm và chúng tôi có:m

m=n2+n

Ngoài ra, chúng ta có có thể được biểu diễn dưới dạng tổng của hai số nhị phân, m 1m 2 , mỗi số là một lũy thừa của hai. Và chúng tôi có mà mm1m2m1>m2m1<m2m1>m2

Điều đầu tiên mà chúng tôi nhận thấy là phải nhỏ hơn m 2 . Điều này là do m 2 lớn hơn căn bậc hai của m 1 , nếu n bằng với m 2 , thì n 2 sẽ lớn hơn m .nm2m2m1nm2n2m

Bây giờ, khi chúng ta bình phương một số nhị phân chẵn, chúng ta có số bình phương có "nhiều số 0" ở bên phải của "số một" đầu tiên so với số ban đầu. Vì vậy, "cái ngoài cùng bên phải" bên trong nằm ở bên trái của "cái ngoài cùng bên phải" bên trong n . Nếu chúng ta thêm n vào n 2 , chúng ta có "cái ngoài cùng bên phải" bên trong n 2 + n là "cái ngoài cùng bên phải" trong n . Vì n nhỏ hơn m 2 . Chúng ta có "cái ngoài cùng bên phải" bên trong n 2 + n nằm bên phải "cái ngoài cùng bên phải" trong m . vì thến2nnn2n2+nnnm2n2+nm . Nhưng vì chúng tôi đã nói rằng n 2 + n = m, chúng tôi đã đạt được một mâu thuẫn và do đó n có thể là chẵn.mn2+nn2+n=mn

có thể không đồng đềun

Một lần nữa, chúng ta có là một số được tạo bằng cách thêm n vào n 2 , vì vậy m = n 2 + nmnn2m=n2+n

Sau đó, chúng tôi nhận thấy rằng ; Điều này là do:(n+1)2(n+1)=n2+n

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

Và sau đó:

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

Một cách khác để thấy điều này, là tưởng tượng là một hình vuông có cạnh dài n . Hình vuông này được hình thành bởi các hình vuông nhỏ hơn có kích thước một. Sau đó, khi chúng ta thêm n hình vuông có kích thước một vào hình vuông trước đó, hình vuông trước đó bây giờ là một hình chữ nhật có các cạnh là nn + 1 . Bây giờ, chúng ta có thể tưởng tượng ( n + 1 ) 2 là một hình vuông khác có các cạnh có chiều dài n + 1 . Hình vuông này cũng được hình thành bởi các hình vuông nhỏ hơn có kích thước một. Nếu chúng ta xóa n + 1 hình vuông cho nó, chúng ta có một hình chữ nhật có cạnh nn2nnnn+1(n+1)2n+1n+1n .n+1

Chúng ta có là số chẵn và chứng minh tuân theo như trước cho tất cả các số lẻ n nhỏ hơn m 2 - 1n+1nm2-1

Một lần nữa, khi chúng ta bình phương một số nhị phân chẵn, chúng ta có số đó có "nhiều số 0" ở bên phải của "số một" đầu tiên so với số ban đầu. Vì vậy, "cái ngoài cùng bên phải" bên trong nằm ở bên trái của "cái ngoài cùng bên phải" bên trong n + 1 . Nếu chúng ta trừ n + 1 thành ( n + 1 ) 2 , chúng ta có "cái ngoài cùng bên phải" bên trong n 2 + n là "cái ngoài cùng bên phải" trong n + 1 .(n+1)2n+1n+1(n+1)2n2+nn+1n+1 . Chúng ta có "cái ngoài cùng bên phải" bên trong n 2 + n nằm bên phải "cái ngoài cùng bên phải" tính bằng m .m2n2+nm

Nếu .n= =m2-1

Một lần nữa, chúng ta có . Vì m 2 2 ( m 2 bình phương) là một số có lũy thừa bằng hai, nên nó chỉ có một "một" dẫn đầu và sau đó là số không. Khi chúng ta trừ m 2 thành m 2 2 , chúng ta sẽ chuyển tất cả các số 0 sang trái của chữ số ngoài cùng bên trái của m 2 bên trong m 2 2n2+n= =(n+1)2-(n+1)m22m2m2m22m2m22 thành "những cái" và số kết quả không giống như những từ chúng ta đang bơm, nên có ít nhất một "số không phân tách" giữa các từ.

Do đó . Nhưng vì chúng tôi đã nói rằng n 2 + n = m, chúng tôi đã đạt được một mâu thuẫn và do đó n có thể không đồng đều.mn2+nn2+n= =mn

thể làtt chẵn hoặc không đồng đều, chúng ta có n không tồn tại như một số nguyên. Do đó, những từ chúng tôi bơm không phải là sản phẩm của công thức cho số vuông lẻ. Vì tất cả các từ chúng tôi đang bơm là số lẻ, chúng có thể là số vuông.nn


1
1(00)p1(00)p (00)p1

y y y

@yuvalFilmus Bạn đã đúng
rotia

2
Bạn nói rằng một số chẵn vẫn còn ngay cả khi chia cho 2, nhưng không phải lúc nào cũng như vậy.
Yuval Filmus

2
Tôi nhận thấy rằng bạn đã thực hiện khoảng 15 lần chỉnh sửa trong 2 ngày qua. Thật tuyệt khi bạn muốn cải thiện câu trả lời của mình và tôi rất muốn thấy bạn tiếp tục làm điều đó. Tuy nhiên, có thể hơi không công bằng cho các câu hỏi khác để tiếp tục đưa câu hỏi này lên đầu trang trước mỗi lần bạn chỉnh sửa tại đây. Bạn có nghĩ rằng bạn có thể có thể bó các chỉnh sửa của mình (có thể viết ngoại tuyến, nói với stackedit.com) để bạn chỉ thực hiện một vài chỉnh sửa mỗi ngày? Tôi không muốn ngăn cản bạn chỉnh sửa câu trả lời của mình để cải thiện nó, nhưng tôi tự hỏi liệu có thể có một phương tiện hạnh phúc nào đó có thể không. Cảm ơn vì đã lắng nghe!
DW
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.