Có thể bạn nhớ các chi tiết cụ thể sai hoặc giải thích sai câu hỏi?
Trong mô tả của bạn, yếu tố ở vị trí b được giới hạn một - b ≠ ± M .
Nhưng nếu họ chỉ có nghĩa là sự khác biệt đã được hạn chế: một - b ≠ M ,
Sau đó, vấn đề xuất hiện dể làm.aba−b≠±M
a−b≠M
Tôi đã giải quyết vấn đề đơn giản hơn đó và tôi đã cố gắng khái quát theo cách mà tôi hy vọng có thể mang lại một chút tự do trong việc giải quyết vấn đề lớn hơn. Nhưng điều này chỉ làm rõ cho tôi tại sao một cách tiếp cận đệ quy rất khó có hiệu quả, mà tôi thảo luận ở phần cuối.
Xét hàm cho số lượng hoán vị của danh sách các phần tử được gắn nhãn từ 1 đến N , trong đó phần tử a ở vị trí b (vị trí đầu tiên là 1) thỏa mãn a - b ≠ M và b - một ≠ P .f(N,M,P)Naba−b≠Mb−a≠P
Để hình dung điều này, việc tách nó thành hai ràng buộc cho phép và P thay đổi các hạn chế đó một cách riêng biệt.MP
1 2 3 4 5 M=0, restricted values for each position
. . . . . (positions in list)
1 2 3 4 5 P=0, restricted values for each position
3 4 5 M=2, restricted values for each position
. . . . . (positions in list)
1 2 3 4 P=1, restricted values for each position
Để thuận tiện, khi sao cho không đặt giới hạn cho hoán vị, hãy xác định g ( N , M ) = f ( N , M , P ) . Tương tự, g ( N , P ) = f ( N , M , P ) khi M ≥ N sao cho nó không bị hạn chế về hoán vị.P≥Ng(N,M)=f(N,M,P)g(N,P)=f(N,M,P)M≥N
Trong trường hợp đặc biệt , ràng buộc từ M và P là tương đương, do đó người ta có thể bỏ qua, cho phép chúng ta viết f theo g :
f ( N , 0 , 0 ) = g ( N , 0 ) .M=P=0MPfg
f(N,0,0)=g(N,0).
Từ tính đối xứng của bài toán:
f(N,M,P)=f(N,P,M)
Trước tiên, hãy giải , sau đó giải f tổng quát hơn ( N , M , P ) .g(N,M)f(N,M,P)
Với , mỗi phần tử có một hạn chế vị trí (và các hạn chế là khác biệt). Vì vậy, chọn một số phần tử i , chúng tôi sẽ đặt nó ở một số vị trí j . Có N - 1 khả năng khác nhau cho sự lựa chọn của j .M=0ijN−1j
Lựa chọn này đã loại bỏ vị trí hạn chế cho phần tử , trong khi các phần tử ( N - 2 ) khác vẫn có một hạn chế. Chúng ta có thể chia vị trí của j thành hai tùy chọn:j(N−2)j
Đặt trong . Điều này để lại tất cả các yếu tố khác với một hạn chế, do đó, vấn đề vị trí còn lại giờ đã giảm xuống còn g ( N - 2 , 0 ) .ig(N−2,0)
Đặt ở vị trí . Điều này hiện cung cấp một hạn chế vị trí cho j và vì vậy mỗi phần tử có một hạn chế và vấn đề vị trí còn lại được giảm xuống g ( N - 1 , 0 )≠ijg(N−1,0)
Vì vậy, điều này đưa ra công thức đệ quy:
g(N,0)=(N−1)[g(N−2,0)+g(N−1,0)]
Và bằng cách nhìn vào các tình huống đơn giản bằng tay, có thể có được các trường hợp cơ bản.
g(1,0)=0, g(2,0)=1
Đây là công thức đệ quy loạn trí thông thường.
Mặc dù tôi không thể tưởng tượng ai đó nghĩ ra điều này ngay tại chỗ, nhưng cũng có một giải pháp dạng đóng cho việc này (xem bài viết wiki gây rối để biết chi tiết).
g(N,0)=⌊n!e+12⌋
Đối với , không có hạn chế về bất kỳ vị trí:M≥N
(M≥N)⟹g(N,M)=N!
Với , các phần tử M đầu tiên sẽ không có hạn chế và các phần tử còn lại sẽ có một hạn chế vị trí. Nó về các vị trí, các vị trí M cuối cùng sẽ cho phép tất cả các số.0<M<NMM
Đối với vị trí cuối cùng, chọn một yếu tố . Có hai khả năng cho vị trí còn lại trông như thế nào:i
Nếu , thì tôi không có giới hạn vị trí, vì vậy sử dụng tôi không thay đổi các hạn chế đối với bất kỳ vị trí nào. Chúng tôi cũng đã xóa một vị trí không hạn chế, vì vậy vị trí còn lại trông giống như g ( N - 1 , M - 1 ) .i<Miig(N−1,M−1)
i>=Miig(N−1,M)
(0<M<N)⟹g(N,M)=(M−1)g(N−1,M−1)+(N−M+1)g(N−1,M)
g
M+P≥NN−MN−PM+P−Ng(N,M+P−N)
(M+P)≥N⟹f(N,M,P)=g(N,M+P−N)
0<M<N0<P<NM+P<Nf0<M≤P<N
PN−M−PM
MN−M−PP
Tuy nhiên đây là lúc chúng ta phải kết thúc. Như không có cách nào để chuyển tiếp với phương pháp này.
a−b≠±M
f(N,M,P)
2NN{A1,A2,...,AN}{B1,B2,...,BN}(Ai,Bj)i−j=M(Bj,Ai)j−i=MM≠0
AB
Vì vậy, chúng tôi muốn một hàm lấy đầu vào biểu đồ ràng buộc này và xuất ra số lượng hoán vị thỏa mãn các ràng buộc.
M+P≥N
0<M≤P<NNN!
Bởi vì có rất nhiều sơ đồ con có thể một khi các chuỗi được cho phép, tôi thực sự không thấy làm thế nào để giải quyết vấn đề này bằng các phương pháp đệ quy thông thường trừ khi có một mối quan hệ thông minh nói rằng đồ thị ràng buộc không đẳng hình bằng cách nào đó tương đương với số lượng hoán vị.
Tôi nghĩ rất có thể, câu hỏi đã bị hiểu sai. Thậm chí có thể bởi người phỏng vấn (người có thể đã quên chi tiết câu trả lời).