The Train Heist | Think Like A Coder, Ep 4

535,654 views ・ 2019-12-09

TED-Ed


下の英語字幕をダブルクリックすると動画を再生できます。

翻訳: Moe Shoji 校正: Yasushi Aoki
00:21
Ethic, Hedge, and Adila, the leader of the revolution,
0
21570
3790
エシックとヘッジと 抵抗運動のリーダーのアディーラは
00:25
plot out how they can steal an artifact called the Node of Power.
1
25360
5179
「力の石」なるアイテムを 盗み出す手立てを考えています
00:30
It’s being used to run a heavily fortified train that runs all around the country,
2
30539
5557
居住区や施設に物資を供給して 国中を走り回る
厳重に警備された列車の動力に 力の石は使われています
00:36
providing supplies to settlements and facilities.
3
36096
3730
00:39
This armored behemoth
4
39826
1628
この大きな装甲列車の 荷下ろし作業は
00:41
undergoes a complex and unpredictable unloading procedure—
5
41454
3988
複雑で予測しがたく
00:45
a procedure which is displayed, in detail, on a screen within the engine car.
6
45442
5384
その詳細は 動力車にある画面に 表示されています
00:50
Right means the train will go one car length forward,
7
50826
3560
「右矢印」は1両分 列車が前進するという意味で
00:54
and left means the train will go the same distance backwards.
8
54386
4001
「左矢印」は1両分 列車が後退するという意味です
00:58
While unloading, the train frequently moves back and forth,
9
58387
3842
荷下ろしの最中に 列車は前後によく動くので
01:02
so a typical sequence might look like this.
10
62229
4960
典型的な作業の流れは こんな具合になります
01:07
Also within the engine car is a button that can only be pressed once.
11
67189
5085
また動力車には 1度だけ押せるボタンがあります
01:12
When pressed, it lets down the force field over the artifact for 10 seconds.
12
72274
5390
これを押すと力の石を守るシールドを 10秒間解除できます
01:17
The engine car is tiny and designed for a robot.
13
77664
3750
動力車内はロボット用に 小さく作られているので
01:21
Of your team, only Hedge can fit.
14
81414
3395
中に入れるのは ヘッジだけです
01:24
The members of the resistance have positioned a crane over the train tracks
15
84809
3908
抵抗運動のメンバーが 線路の上にクレーンを配置し
01:28
that can pluck the artifact once it’s exposed.
16
88717
3167
力の石が無防備になったところを 奪取する手はずです
01:31
They’ll know when to lower the crane by sight.
17
91884
2995
いつクレーンを下げるかは 目で見て確認します
01:34
But the only way Hedge can determine the train’s position
18
94879
3360
でもヘッジが列車の位置と
シールド解除のタイミングを 判断するには
01:38
and know when to lower the force field
19
98239
2287
01:40
is by analyzing the unloading procedure,
20
100526
3128
荷下ろし作業手順を 分析するしかありません
01:43
because he’ll be inside the windowless engine car.
21
103654
3968
なぜならヘッジは 窓のない動力車の中だからです
01:47
Hedge can’t program himself though, so it’s up to Ethic to tell him what to do.
22
107622
5376
ヘッジは自分では プログラミングできないので
ことはエシックが与える指示に かかっています
01:52
The artifact is in the car 10 positions behind
23
112998
3620
最初 力の石のある車両は
01:56
the one that’s directly under the crane at the start.
24
116618
3163
クレーンの真下の車両の 10両うしろにあります
01:59
What instructions can Ethic give Hedge
25
119781
2704
エシックがどんな指示を与えれば
02:02
so that he hits the button at just the right moment?
26
122485
3748
ヘッジは ちょうどいいタイミングで ボタンを押せるでしょうか?
ビデオをいったん止めて 自分で考えてみましょう
02:13
Here’s a hint to get you started.
27
133506
3550
考え方のヒントです
02:17
The key to this problem, as with many programming challenges,
28
137056
3857
多くのプログラミング問題と同様に この問題で鍵となるのは
02:20
is to reframe the information in a way that a computer can work with.
29
140913
4381
コンピュータが扱えるように 情報を整理することです
02:25
A computer doesn’t know what a train is, nor does it need to.
30
145294
4620
コンピュータは列車が何か知りませんし 知る必要もありません
02:29
It can, however, work with variables.
31
149914
3110
でも 変数を扱うことはできます
02:33
Try making a variable that tracks the train’s position.
32
153024
4313
列車の位置を把握できるような 変数を考えてみましょう
02:37
How will it change as the train moves?
33
157337
2957
列車が動くにつれて その変数はどう変わるでしょう?
[ビデオをいったん止めて 自分で考えてみましょう]
02:46
Let’s start by breaking this problem into two objectives.
34
166362
3650
この問題を2つの目的に 分けることから始めましょう
02:50
The first is to know where the train will be as it carries out its instructions.
35
170012
4873
1つめは指示を遂行して動く 列車の位置を把握すること
02:54
The second is to hit the button when the train is in just the right position.
36
174885
5184
2つめは列車がちょうどいい位置に いるときに ボタンを押すことです
03:00
For the first objective it’ll help to think of the train as a big number line.
37
180069
4669
最初の目的には 列車を 大きな数直線だと考えるといいでしょう
03:04
Let’s make 0 the car with the node, 1 the car in front of it, and so on.
38
184738
4854
力の石がある車両を0 その前の車両を1という具合に考えます
03:09
That means car 10 is under the crane at the start.
39
189592
3690
そうすると最初クレーンの真下にあるのは 10の車両になります
03:13
When the train moves one car right, car 9 is under the crane.
40
193282
4449
列車が右に1両分進めば 9の車両がクレーンの下に来ます
03:17
So a right arrow can be thought of as “subtract 1.”
41
197731
3810
つまり右矢印は 「-1」と考えられます
03:21
And when the train moves left from there,
42
201541
2270
そこから列車が左に動けば 10の車両がクレーンの下に戻り
03:23
10 is back under the crane,
43
203811
1840
03:25
making a left arrow the same as “add 1."
44
205651
3757
左矢印は「+1」 と考えられます
03:29
Let’s set our train position variable to 10, since that’s where we start.
45
209408
4455
まず最初の位置に基づいて 列車位置の変数に10を入れます
03:33
We can now use a loop to read the instructions one at a time,
46
213863
4330
ループを使って 指示をひとつずつ読んでいき
03:38
adding or subtracting as we go, to track which car is under the crane.
47
218193
5104
足したり引いたりすることで クレーンの下にどの車両がいるか把握できます
03:43
The nice thing about setting up the variable this way
48
223297
2750
このように変数を 設定することの利点は
03:46
is that it tells us how far the node is from the crane.
49
226047
3316
クレーンと力の石の距離が 分かることです
03:49
So as soon as the variable hits 0, Hedge should hit the button.
50
229363
4064
変数が0になったらすぐに ヘッジはボタンを押せばいいのです
03:53
And here’s what happens.
51
233427
1810
さて どうなるでしょう
03:55
Ethic gets into position on the crane while Hedge rushes off
52
235237
3674
エシックがクレーンに 取り付く一方で
ヘッジは列車が動き出す前に 急いで動力車に忍び込みます
03:58
and slips into the engine car unnoticed, just before the train lurches to life.
53
238911
5898
04:04
It rolls 3 cars back. 1 forward, another 4 back.
54
244809
4893
3後退して1前進 また4後退します
04:09
Then so far forward Ethic loses track before it reverses once more.
55
249702
5819
それからエシックが見失うくらい 大きく前進してから また後退します
04:15
When the artifact finally rolls into position,
56
255521
3021
ようやくアイテムがいい位置に来ると アディーラはクレーンを下げ
04:18
Adila lowers the crane, hoping Ethic and Hedge got it right.
57
258542
3790
2人がうまくやっていることを 祈ります
04:22
At the last possible moment, the force field sputters and falls.
58
262332
4372
ギリギリのところで シールドが解除され
04:26
Ethic swoops in, and lifts the Node of Power to freedom.
59
266704
5011
エシックがさっと手を伸ばして 力の石を手に入れます
04:31
When Ethic gives the node to Hedge for safe keeping,
60
271715
2910
エシックがヘッジに 力の石を預けようとすると
04:34
something incredible happens.
61
274625
2091
信じられないことが起こります
04:36
The artifact shimmers to life with a vision of the past:
62
276716
3850
アイテムが光り輝き 過去を見せ始めたのです
04:40
When the crystal was unearthed, no one could make the console inside work.
63
280566
4806
あの巨大クリスタルが発掘されたとき 誰も中のコンソールを動かせず
04:45
The government put out a call for people to try their luck with it,
64
285372
3250
政府は人々に助けを 呼びかけて
04:48
one at a time.
65
288622
1452
1人ずつ試させました
04:50
Ethic loved to figure out what made things tick, so she signed up.
66
290074
4323
エシックは謎解きが好きなので 名乗りを上げました
04:54
Within moments at the console, something clicked into place,
67
294397
3143
コンソールに向かってすぐに 何かがうまく動き出し
04:57
and she created her first robot.
68
297540
2760
最初のロボットが 作り出されました
05:00
The government hired Ethic as chief robotics engineer on the spot.
69
300300
5014
政府はその場でエシックを ロボット主任技術者として雇いました
05:05
Within a year her creations ran almost every aspect of society,
70
305314
4170
1年と経たないうちに 彼女のロボットが 社会のあらゆる側面を動かすようになり
05:09
and the nation and its people thrived,
71
309484
2149
国も国民も栄え
05:11
no longer needing to toil in the fields and factories.
72
311633
3475
人々はもはや畑や工場で 働く必要がなくなりました
05:21
The vision ends, and Hedge detects the second artifact in the 198forest,
73
321047
6763
過去の映像が終わると
ヘッジは2つめのアイテムが 南東の方角
198番森林にあるのを 探知しました
05:27
to the southeast.
74
327810
1460
05:29
Luckily, the train is going there next,
75
329270
2336
幸運なことに これは列車の行き先です
05:31
and has just enough reserve fuel for the trip.
76
331606
3034
ちょうど移動分の 燃料も残っているようです
05:34
Ethic and Hedge smuggle themselves aboard
77
334640
2557
エシックとヘッジは 密かに列車に乗り込んで
05:37
and find a hiding spot for the long journey ahead.
78
337197
3558
長旅の間 身を隠す場所を 見つけるのでした
このウェブサイトについて

このサイトでは英語学習に役立つYouTube動画を紹介します。世界中の一流講師による英語レッスンを見ることができます。各ビデオのページに表示される英語字幕をダブルクリックすると、そこからビデオを再生することができます。字幕はビデオの再生と同期してスクロールします。ご意見・ご要望がございましたら、こちらのお問い合わせフォームよりご連絡ください。

https://forms.gle/WvT1wiN1qDtmnspy7