Czy to możliwe, że źle zapamiętałeś konkretne dane lub źle zinterpretowałeś pytanie?
W opisie, element w pozycji B jest ograniczony do o - b ≠ ± M .
Ale jeśli chodziło tylko o to, że różnica była ograniczona: a - b ≠ M ,
problem wydaje się możliwy do rozwiązania.aba−b≠±M
a−b≠M
Opracowałem ten prostszy problem i próbowałem uogólnić w sposób, który, jak miałem nadzieję, dałby trochę swobody w rozwiązywaniu większego problemu. Ale to właśnie wyjaśniło mi, dlaczego podejście rekurencyjne jest mało prawdopodobne, co omówię na końcu.
f(N,M,P)Naba−b≠Mb−a≠P
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
P≥Ng(N,M)=f(N,M,P)g(N,P)=f(N,M,P)M≥N
M=P=0MPfg
f(N,0,0)=g(N,0).
f(N,M,P)=f(N,P,M)
g(N,M)f(N,M,P)
M=0ijN−1j
j(N−2)j
ig(N−2,0)
≠ijg(N−1,0)
g(N,0)=(N−1)[g(N−2,0)+g(N−1,0)]
g(1,0)=0, g(2,0)=1
Jest to zwykła rekursywna formuła wykroczeń.
Chociaż nie mogę sobie wyobrazić, że ktoś nadchodzi z tym na miejscu, ale również okazuje nie jest zamkniętą formą rozwiązania tego (patrz rozstroju artykuł wiki szczegółów).
g(N,0)=⌊n!e+12⌋
M≥N
(M≥N)⟹g(N,M)=N!
0<M<NMM
i
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
Tutaj jednak musimy zakończyć. Ponieważ nie ma możliwości zastosowania tej metody.
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
Chcemy więc funkcji, która pobiera jako dane wejściowe ten wykres ograniczeń i wyprowadza liczbę permutacji, które spełniają ograniczenia.
M+P≥N
0<M≤P<NNN!
Ponieważ istnieje tyle możliwych podgrafów po dopuszczeniu łańcuchów, naprawdę nie rozumiem, jak można to rozwiązać za pomocą zwykłych metod rekurencyjnych, chyba że istnieje sprytna relacja mówiąca, że nieizomorficzne wykresy ograniczeń są w jakiś sposób równoważne liczbie permutacji.
Myślę, że najprawdopodobniej pytanie zostało źle zinterpretowane. Być może nawet przez ankietera (który mógł sam zapomnieć o szczegółach odpowiedzi).