Ragnarok. The fabled end of the world,
Ragnarok.
when giants, monsters, and Norse gods battle for the future.
Ngày tàn của thế giới thần thoại, khi người khổng lồ, quái vật, và các vị thần Bắc Âu đánh nhau.
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.
Những vị thần dễ dàng chiến thắng cho đến khi rắn khổng lồ Jörmungandr trỗi dậy. Nó nuốt chửng điện Valhalla, uốn lượn trên mặt đất, rồi hoá thành một cơ thể liên tục, không đầu không đuôi. Trong khi Jörmungandr tiêu hoá cung điện Valhalla, thần Odin đã mệt lử và giải thích rằng Ngài chỉ còn ít sức mạnh để đánh quái vật chỉ với một tia sét duy nhất. Dùng cây búa Mjölnir trong truyền thuyết, bạn sẽ có thể phóng đại tia sét đó, và có thể chọc thủng con rắn khổng lồ.
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.
Bạn sẽ chạy cực nhanh dọc trên cơ thể của quái vật. Khi bạn giơ cao chiếc búa, Odin sẽ đánh tia sét vào nó và xẻ đôi Jörmungandr. Sau đó, bạn sẽ tiếp tục chạy dọc theo cơ thể của quái vật cho đến khi mọi vị trí trên cơ thể của con rắn đều bị phá huỷ. Bạn không thể chạy một đoạn hai lần, trừ khi bạn muốn rơi vào bụng của con rắn. Nhưng không thể chạy qua nhiều giao điểm cùng một lúc nơi mà cơ thể sinh vật giao nhau. Nếu bạn chừa ra một đoạn chưa được xẻ đôi, Jörmungandr sẽ lành lại một cách ma quái. Sức mạnh cuối cùng của Odin sẽ cạn kiệt, và cung điện Valhalla sẽ sụp đổ mãi mãi.
What path can you take to destroy the serpent?
Con đường nào bạn sẽ chọn để phá huỷ con rắn Jörmungandr?
Pause now to figure it out yourself!
Tạm dừng tại đây để tự mình giải đố!
Answer in 3 2 1
Trả lời trong 3 Trả lời trong 2 Trả lời trong 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.
Bước quan trọng để giải bài toán này là hãy đơn giản hoá vấn đề. Trong trường hợp này, chúng ta cần chú ý đến hai thứ quan trọng cho đường đi mà ta chọn: giao điểm và thân của con rắn giữa các giao điểm. Nói cách khác, trong lý thuyết đồ thị, chúng được gọi là “nút” và “cạnh”. Cạnh quan trọng vì đó là nơi chúng ta cần để di chuyển. Và nút cũng quan trọng vì đó là nơi cạnh kết nối với nhau, và là nơi chúng ta đưa ra hướng đi khi ta chạy từ cạnh này sang cạnh khác. Việc đơn giản hoá bài toán thành hệ thống nút-cạnh tạo ra một đối tượng toán học quan trọng và phổ biến, được gọi là một đồ thị, hay một mạng lưới. Chúng ta chỉ cần tìm cách di chuyển cái mà các nhà toán học gọi là đường đi Euler, nơi mỗi cạnh chỉ được đi một lần.
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.
Thay vì nhìn đường đi một cách tổng thể, hãy chú ý vào một nút trước. Tại một số thời điểm khi bạn chạy, bạn sẽ đi vào nút đó, rồi đi ra. Vậy là bạn sẽ dùng 2 cạnh. Nếu bạn đi vào một lần nữa, bạn cũng sẽ phải đi ra một lần nữa, vậy là sử dụng cặp cạnh còn lại. Như vậy tại mọi điểm dọc trên đường chạy, các cạnh đi theo cặp. Một cạnh ở mỗi cặp sẽ là đường vào, cạnh còn lại sẽ là đường ra. Điều đó có nghĩa là tổng số cạnh từ mỗi nút sẽ phải là số chẵn.
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.
Chỉ có hai ngoại lệ: điểm bắt đầu và điểm kết thúc, nơi bạn chỉ ra mà không vào, và ngược lại. Nếu bạn nhìn vào mạng lưới tạo bởi Jörmungandr một lần nữa, và đếm số cạnh chạy ra từ mỗi nút, một mô típ sẽ xuất hiện y như những gì ta vừa thảo luận. Mỗi nút đều có số cạnh chẵn chạy ra từ nút, chỉ trừ hai nút. Một trong hai nút sẽ là điểm bắt đầu, và nút còn lại sẽ là điểm kết thúc.
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.
Và cũng rất thú vị, mạng lưới kết nối nào mà có duy nhất 2 nút có số cạnh lẻ sẽ chứa một đường đi Euler. Đường đi cũng sẽ xuất hiện khi không có nút nào có số cạnh lẻ— trong trường hợp này đường đi bắt đầu và kết thúc tại một điểm.
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.
Từ đó hãy trở lại đồ thị của chúng ta. Chúng ta có thể giải quyết cạnh này. Và bây giờ chúng ra sẽ dích dắc tới và lùi hết cả cơ thể con rắn cho đến khi ta đến điểm cuối. Và đó chỉ là một đáp án— nó mang tính hệ thống, nhưng bạn sẽ có thể chọn được những đường đi khác một khi bạn biết nơi bắt đầu và nơi kết thúc của con đường bạn đi.
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.
Bạn sẽ giơ cao cây búa vào một thời điểm thích hợp, và Odin sẽ gửi tia sét đến bạn để cứu lấy thế giới. Và bạn sẽ chạy như thể không có ngày mai. Nếu bạn có thể giải được bài toán này, sẽ không có gì có thể ngăn được sức mạnh của các vị thần Bắc Âu. Và nếu có thứ gì đó tương tự như thế ngoài kia, lừ đừ đi về hướng của bạn... thì... ừm... đó sẽ lại là một câu chuyện khác.