Vì vậy, tôi không hoàn toàn chắc chắn, nhưng tôi nghĩ bạn đang yêu cầu đếm số chuỗi có kích thước (trên bảng chữ cái ) trong đó yếu tố / chuỗi con không xuất hiện phải không?{ một , b } một mộtn{a,b}aa
Trong trường hợp này, có một vài cách tiếp cận kết hợp mà bạn có thể thực hiện. Cả Yuval và ADG đều đưa ra những lập luận đơn giản và trực quan hơn, vì vậy tôi chắc chắn đề nghị kiểm tra câu trả lời của họ! Đây là một trong những mục yêu thích của tôi, nó hơi lạ, nhưng đó là một cách tiếp cận rất chung chung (và thú vị).
Hãy bắt đầu với một ngôn ngữ đơn giản hơn, đó là những từ bắt đầu và kết thúc bằng (cũng không có từ ghép của ). Chúng ta có thể xem một chuỗi được chấp nhận (ví dụ: ) như một danh sách các chuỗi của s được phân tách bằng số ít s. Điều này mang lại cho việc xây dựng:
Bây giờ, làm thế nào để chúng ta đếm các câu thuộc về ngôn ngữ này?a a b b b a b a b b b b b a w = ( b + a ) ∗ b +baabbbababbbbba
w=(b+a)∗b+
Chúng ta hãy tưởng tượng rằng chúng ta đang mở rộng những biểu thức này ra. Làm những gì biểu thị? Chà, đơn giản là
Bây giờ, điều này sẽ rất ít ý nghĩa, nhưng hãy tưởng tượng rằng là một biến số trên một số trường. Cụ thể, chúng tôi sẽ đối xử với , và . Điều này sau đó nói rằng
Hãy thử xem động lực đằng sau cách giải thích kỳ lạ này. Đây gần như là một biến đổi sinh học. Đặc biệt, chúng tôi muốn duy trì số lượng của mỗie * = ε | e | e e | e e e | e e e e | ... e ε → 1 một | b → một + b một b c → một × b × c đ * → 1 + e + e e + e e e + ... e n × be∗
e∗=ϵ∣e∣ee∣eee∣eeee∣…
eϵ→1a∣b→a+babc→a×b×ce∗→1+e+ee+eee+…
entừ, mà bạn có thể dễ dàng nhìn thấy, chúng tôi làm. Tuy nhiên, có một sự khác biệt quan trọng giữa biểu thức chuỗi và biểu thức số: phép nhân (nối trong chuỗi, trong biểu thức số) hiện đang giao hoán! Theo trực giác, giao hoán cho phép chúng ta coi tất cả các hoán vị của cùng một từ là như nhau; đó là, chúng tôi không phân biệt giữa biểu thức và ; cả hai đều đại diện cho một chuỗi với 4 s và một . Do đó, chuyển đổi này cho phép chúng tôi để bảo tồn số lượng của mỗi từ của một số lượng nhất định của s và s, nhưng bây giờ nó cho phép chúng ta nhắm mắt làm ngơ về các chi tiết không cần thiết mà chúng ta không quan tâm.
×b b a b b b a a bbbbabbbabbbaab
Nếu bạn quay lại prealculus, bạn có thể nhận ra chuỗi này là . Tôi biết rằng sẽ không có ý nghĩa gì khi viết lại biểu thức chính quy này như là một hàm có giá trị bằng số, nhưng chỉ đơn giản là với tôi trong giây lát.11−e
Tương tự, . Điều đó có nghĩa là chúng ta có thể dịch thành
ww→1e+=ee∗→e1−ew
w→11−(b1−b×a)×b1−b
Đổi lại, chúng ta có thể đơn giản hóa điều này xuống
w(a,b)=b×11−(b+ba)
Điều này cho chúng ta biết rằng ngôn ngữ là đẳng cấu với ngôn ngữ (có bản dịch trực tiếp đã ) mà không cần phải sử dụng bất kỳ lý thuyết ngôn ngữ nào công cụ! Đây là một trong những sức mạnh của việc coi các chuỗi này là các hàm dạng đóng: chúng ta có thể thực hiện các đơn giản hóa trên chúng mà gần như không thể thực hiện được, do đó giảm nó xuống thành một vấn đề đơn giản hơn.b ( b | một b ) * bwb(b∣ab)∗b1−b−ba
Bây giờ, nếu bạn vẫn nhớ bất kỳ khóa học tính toán nào của mình, bạn sẽ nhớ lại rằng một số loại hàm nhất định (có đủ hành vi tốt) thừa nhận các biểu diễn chuỗi này được gọi là mở rộng Taylor. Đừng lo lắng, chúng tôi sẽ không thực sự phải lo lắng về những vấn đề rắc rối đó với Calc 1; Tôi chỉ đơn thuần chỉ ra rằng các hàm này có thể được biểu diễn dưới dạng tổng
sao cho đưa ra số lượng từ thỏa mãn sao cho nó có chính xác lần xuất hiện của và lần xuất hiện của . Tuy nhiên, chúng tôi không đặc biệt quan tâm đến việc một cái gì đó là hay wijwiajbababz=a=bw(z)=w(z,z)=z
w ( a , b )= ∑tôi , jwtôi jmộtTôibj
wtôi jwTôimộtjbmộtb. Thay vào đó, chúng tôi chỉ quan tâm đến tổng số ký tự trong chuỗi. Để biến "mắt mù" giữa và , chúng ta chỉ có thể (theo nghĩa đen) đối xử với chúng như nhau, ví dụ: let và get
mộtbz= a = bw ( z) = w ( z,z)=z1−z−z2=∑kwkzk
trong đó đếm số lượng từ thỏa đáng có độ dài . kwkk
Bây giờ, tất cả những gì còn lại phải làm là tìm . Cách tiếp cận tổ hợp thông thường ở đây sẽ là phân rã hàm hữu tỷ này thành một phần của nó: nghĩa là, với mẫu số , chúng ta có thể viết lại (Có một chút đại số liên quan ở đây, nhưng đây là một tính chất phổ biến của các hàm hữu tỷ (một đa thức chia một hàm khác). Để giải quyết vấn đề này, bạn có thể cấu trúc lại
tạo ra các ràng buộc . Bất kể và là gì, hãy nhớ lại rằng 1 - z - z 2 = ( z - φ ) ( z - ψ ) zwk1−z−z2=(z−ϕ)(z−ψ) Mộtz(z−ϕ)(z−ψ)=Az−ϕ+Bz−ψ Một+B=1,Aψ+Bφ=0MộtB1
Az−ϕ+Bz−ψ=z(z−ϕ)(z−ψ)
A+B=1,Aψ+Bϕ=0AB w ( z )11−x=1+x+x2+… , tốt, chúng ta có thể sắp xếp lại
do đó
Ở đây, là tỷ lệ vàng và là liên hợp của nó. Sau đó, chúng tôi có một mô tả dễ dàng về hành vi tiệm cận của ngôn ngữ : nó chạy trong
wk=(-Mộtφ)φ-k+(-Bψ)w(z)=−Aϕ−z+−Bψ−z=(−Aϕ)11−zϕ+(−Bψ)11−zψ=(−Aϕ)(1+ϕ−1z+ϕ−2z2+…)+(−Bψ)(1+ψ−1z+ψ−2z2+…)
φ 1 + √wk=(−Aϕ)ϕ−k+(−Bψ)ψ−k
ϕ ψ=-φ-1wΘ(φn)wk=φ k -ψ k1+5√2ψ=−ϕ−1wΘ(ϕn). Trên thực tế, nếu bạn mở rộng mọi thứ ra, bạn sẽ thấy rằng
Ngoài ra còn có một kết nối phức tạp với một lớp tổ hợp phổ biến khác. Đây chỉ là những con số Fibonacci!
wk=ϕk−ψk5–√=⌈ϕk5–√⌉
Bây giờ, giả sử bạn có , tính số chuỗi có kích thước bắt đầu và kết thúc bằng (và cũng không chứa chuỗi con ), làm thế nào chúng ta có thể xây dựng một chuỗi có thể bắt đầu hoặc kết thúc bằng ? Chà, thật đơn giản: một chuỗi được chấp nhận ở dạng (bắt đầu và kết thúc bằng ) hoặc là (bắt đầu bằng ) hoặc là (kết thúc bằng ) hoặc là (bắt đầu và kết thúc bằng ). Do đó:
nhớ lại rằngwkkkaaawbawawaaawaa
f(n)=wn+wn−2+2∗wn−1
wnlà chuỗi , vì vậy , có nghĩa là
Do đó,
wn−1+wn−2=wnf(n)=(wn+wn−1)+(wn−2+wn−1)=wn+1+wn=wn+2
f(n)=fib(n+2)=⌈ϕn+25√⌉
Bây giờ bạn có thể không phải thực hiện phân tích này, nhưng chỉ cần có cái nhìn sâu sắc rằng chuỗi này là chuỗi Fibonacci thay đổi phải cung cấp cho bạn ý tưởng về một số diễn giải kết hợp khác mà bạn có thể thử.