Ragnarok. The fabled end of the world, when giants, monsters, and Norse gods battle for the future.
諸神黃昏。傳說中的世界末日, 巨人、怪獸、北歐諸神 為了未來而戰。
The gods were winning handily until the great serpent Jörmungandr emerged. It swallowed Valhalla, contorted itself across the land, and then merged into one continuous body with no head and no tail. As it begins to digest Valhalla, an exhausted Odin explains that he has just enough power to strike the creature with one final bolt of lightning. If you magnify his blast with your fabled hammer, Mjölnir, it should pierce the massive serpent.
諸神很輕易就佔了上風, 直到巨大海蛇耶夢加得出現。 牠吞掉了瓦爾哈拉, 盤在整片大地上, 接著融合成了連接在一起的身體, 沒有頭也沒有尾。 當牠開始消化瓦爾哈拉, 筋疲力竭的奧丁解釋說 他還有剛好足夠的力量 可以做最後一次雷擊, 攻擊這個生物。 如果你用傳說中的雷神之鎚 妙爾尼爾將他的攻擊放大, 應該就足以貫穿這條大蛇。
You’ll run with super-speed along the serpent’s body. When you hold your hammer high, Odin will strike it with lightning and split Jörmungandr open at that point. Then, you’ll need to continue running along its body until every part of it is destroyed. You can’t run over the same section twice or you’ll fall into the already blasted part of the snake. But you can make multiple passes through points where the creature intersects its own body. If you leave any portion un-zapped, Jörmungandr will magically regenerate, Odin’s last power will be spent, and Valhalla will fall forever.
你要用超快的速度 沿著大蛇的身體奔跑。 當你舉高鎚子時, 奧丁就會用雷擊攻擊它, 在那個點將耶夢加得的身體切開。 接著,你得要持續 沿著大蛇的身體奔跑, 直到牠的每一部分都被摧毀。 你不能經過同樣的區段兩次, 要不然你就會掉進已經 被擊毀的部分蛇體中。 但你可以多次通過蛇體 相疊的交叉點。 只要有一部分沒有摧毀, 耶夢加得就會用魔法再生, 奧丁最後的力量已經用盡, 瓦爾哈拉就會永遠滅亡。
What path can you take to destroy the serpent?
你要走什麼路徑來摧毀這條大蛇?
Pause now to figure it out yourself!
若要嘗試解題,在此暫停。
Answer in 3 2 1
答案即將公佈:三、 二、 一
One powerful way to solve problems is to simplify. And in this case, we can focus our attention on the two things that are important for our path: intersections and the stretches of snake between them. Or, as they’re referred to in graph theory, nodes and edges. The edges are important because they’re what we need to travel. And the nodes matter because they connect the edges, and are where we may need to make choices as we run from edge to edge. This simplification into nodes and edges leaves us with a ubiquitous and important mathematical object known as a graph, or network. We just need to figure out how to travel what mathematicians call an Eulerian path, which traces every edge exactly once.
要解決問題,一個 很有效的方法就是簡化。 在這個例子中, 我們可以把焦點放在 對路徑選擇很重要的兩樣東西上, 交叉點和交叉點間的伸長蛇體。 在圖論中,則是稱為節點和邊緣。 邊緣很重要,因為邊緣 是我們要走的路線。 節點很重要,因為節點銜接邊緣, 且我們要在節點上做決擇, 決定要跑向哪一條邊緣。 把問題簡化成節點和邊緣, 就讓我們得到了一個 普遍且重要的數學物元: 圖,或稱網路。 我們只需要解出數學家 所謂的歐拉路徑, 也就是剛好把每個邊緣 都走一次的路徑。
Instead of looking at the path as a whole, let’s zoom in on a single node. During some moment in your run, you’ll enter that node, and then exit it. That takes care of two edges. If you enter again, you’ll need to exit again too, which requires another pair of edges. So every point along your path will have edges that come in pairs. One edge in each pair will function as entrance; the other as exit. And that means that the number of edges coming out of every node must be even.
別急著把路徑視為一個整體, 咱們先放大看單一個節點。 在你奔跑的某個時點,你會 進入那個節點,接著再離開它。 那就處理掉了兩條邊緣。 如果你再次進入該節點, 你就得再次離開, 那就需要有另一對邊緣。 所以路徑上的每個節點 都必須要有成對的邊緣。 一對邊緣中的一條邊緣用來進入, 另一條用來離開。 那就表示每個節點必須要 連結到偶數條邊緣。
There are just two exceptions: the start and end points, where you can exit without entering, or vice versa. If we look at the network formed by the serpent again, and number how many edges emerge from each node, a pattern jumps out that fits what we just saw. Every node has an even number of edges emerging from it, except two. So one of these must be the start of your route, and the other the end.
有兩個例外,起點和終點, 在這兩個點,可以 只進不出或只出不進。 我們再次回去看大蛇形成的網路, 計算每個節點連結了幾個邊緣, 就會出現一個模式, 符合我們剛才看到的。 每個節點都連結到偶數條 邊緣,只有兩個例外。 因此,這兩個點其中之一必須要是 路徑的起點,另一個是終點。
Interestingly enough, any connected network that has exactly 2 nodes with an odd number of edges will also contain an Eulerian path. The same is true if there are no nodes with an odd number of edges— in that case the path starts and ends in the same spot.
有趣的是,如果一個連結網路 剛好只有兩個節點 連結到奇數條邊緣, 該網路中就一定會有 一條歐拉路徑。 如果網路中所有節點都連結到 偶數條邊緣,亦會是如此—— 在這種情況中, 起點和終點會是同一點。
So knowing that, let’s return to our full graph. We can begin by taking care of this edge here. Now we can zig-zag back and forth across the whole snake until we reach the end. And that's just one solution— it helps to be systematic, but you’re likely to happen upon many others once you know where to begin and end your run.
知道這些之後, 咱們回來看看完整的全圖。 我們可以從處理這條邊緣開始。 現在我們可以在整條蛇 身上曲折來回, 直到抵達終點。 這只是一種解決方案—— 系統化是有幫助的, 但一旦你知道從何開始和結束, 你很可能會再發現 許多其他解決方案。
You hold your hammer high at the opportune moment, and Odin sends the world-saving surge of lightning at you. Then you run like you’ve never run before. If you can pull this off, surely nothing could stop the might of the Norse Gods. And if something like that were out there, slouching its way towards you… well, that would be a story for another day.
在恰當的時刻,你高舉你的鎚子, 奧丁向你放出一波 拯救世界的雷擊。 接著你死命地奔跑。 如果你成功了,那肯定沒有什麼 能阻止北歐諸神的神威。 若還有像那樣的生物 想要接近你…… 嗯,那就是下回的故事了。