所以我有一個 G 有向圖(從節點 v 雙向定向),以及它的歐拉游標,如下所示:

我有一個名為 的函式,root(written_L,u)其中u是目標圖/組件的新根,并且written_L是 Euler 游標。所以root函式把u節點作為根,重新計算所有的邊標簽,給出一個新的歐拉游標。
但是,我不能完全理解為 root 函式給出的演算法:

以及相應的表示系統:

我試圖為這個問題撰寫一個程式,但我無法完全理解這些數學運算式。如果有人能以非數學形式向我解釋所有這些含義,我將不勝感激。此外,如果需要,請隨時詢問更多資訊。
uj5u.com熱心網友回復:
有時你需要的只是一個例子。下圖顯示了將根節點移動到中心列中間后的邊緣標記。

您會注意到我們所做的只是從所有數字中減去 5。當原始標簽至少為 5 時,這很好。當原始標簽小于 5 時,我們需要減去 5,然后添加 12,以保持標簽在 0 到 11 的范圍內。
例如,曾經標記為 8 的邊被重新標記為8-5=3。標記為 4 的邊被重新標記為4 -5 12 = 11。
您需要知道的另一件事是減去 5(將結果保持在 0 到 11 的范圍內)與添加 7 模 12 相同。重復相同的例子,8 被重新標記(8 7) % 12 = 3,4 被重新標記(4 7) % 12 = 11。
所以演算法是:
- 找到進入原根的最大標簽,加1求模(M)。在這個例子中,最大的標簽是 11,所以 M 是 12。
- 找到離開新根 (Z) 的最小標簽。在示例中,Z 為 5。
- 將 delta (D) 計算為
D = M - Z。在示例中,D 為 7。 - 使用公式更新每個標簽 (L)
newL = (L D) % M
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/368643.html
下一篇:MIPS中的嵌套回圈演示
