证明: 若 q = m q=m q=m 或 q ≠ m q \neq m q=m 但 P [ q + 1 ] ≠ a P[q+1] \neq a P[q+1]=a ,则 σ ( P q a ) = σ ( P π [ q ] a ) \sigma(P_qa) = \sigma(P_{\pi[q]}a) σ(Pqa)=σ(Pπ[q]a)
总体的证明思路为将原问题(求 σ ( P q a ) \sigma(P_qa) σ(Pqa) 或者 求 σ ( P π [ q ] a ) \sigma(P_{\pi[q]}a) σ(Pπ[q]a))拆分为两个子步骤,然后会发现这两个原问题对应的子步骤都是一样的。
对于 σ ( P q a ) \sigma(P_qa) σ(Pqa),可以将它转化为如下问题:
-
设 A = { k ∣ k < q , P k ⊐ P q } A=\{ k \mid k<q \, , \, P_k \sqsupset P_q\} A={k∣k<q,Pk⊐Pq}
上面的条件 q = m q=m q=m 或 q ≠ m q \neq m q=m 但 P [ q + 1 ] ≠ a P[q+1] \neq a P[q+1]=a 将 k = q k=q k=q 的情形排除在需要考虑的范围。
-
对A中的元素k从大到小作测试: P k + 1 = = a ? P_{k+1}==a ? Pk+1==a?
若存在相等的情形,则 σ ( P q a ) = k + 1 \sigma(P_qa)=k+1 σ(Pqa)=k+1
若均不等,则 σ ( P q a ) = 0 \sigma (P_qa)=0 σ(Pqa)=0 -
以上问题中的集合A可以等价为 A = π ∗ [ q ] A=\pi^*[q] A=π∗[q]
对于 σ ( P π [ q ] a ) \sigma(P_{\pi[q]}a) σ(Pπ[q]a),可以将它转化为如下问题:
- 设 B = { k ∣ k ≤ π [ q ] , P k ⊐ P π [ q ] } B=\{ k \mid k \leq \pi[q] \, , \, P_k \sqsupset P_{ \pi[q]}\} B={k∣k≤π[q],Pk⊐Pπ[q]}
- 对B中的元素k从大到小作测试:
P
k
+
1
=
=
a
?
P_{k+1}==a ?
Pk+1==a?
若存在相等的情形,则 σ ( P π [ q ] a ) = k + 1 \sigma(P_{\pi[q]}a)=k+1 σ(Pπ[q]a)=k+1
若均不等,则 σ ( P π [ q ] a ) = 0 \sigma(P_{\pi[q]}a)=0 σ(Pπ[q]a)=0 - 以上问题中的集合B可以等价为 B = { k ∣ k < π [ q ] , P k ⊐ P π [ q ] } ⋃ { π [ q ] } = π ∗ [ π [ q ] ] ⋃ { π [ q ] } = π ∗ [ q ] B=\{ k \mid k < \pi[q] \, , \, P_k \sqsupset P_{ \pi[q]}\} \bigcup \{ \pi[q]\}=\pi^*[\pi[q]] \bigcup \{\pi[q]\}=\pi^*[q] B={k∣k<π[q],Pk⊐Pπ[q]}⋃{π[q]}=π∗[π[q]]⋃{π[q]}=π∗[q]
比较可知 A = B A=B A=B,故两个原问题是等价的,进而得: σ ( P q a ) = σ ( P π [ q ] a ) \sigma(P_qa) = \sigma(P_{\pi[q]}a) σ(Pqa)=σ(Pπ[q]a) \qquad \qquad #