プログラマーのように考える 第7話「悟りの塔」
-
0:32 - 0:36エシックとヘッジは
巨大な塔の1階にいます -
0:37 - 0:39エネルギーのバリアによって
-
0:39 - 0:442つめのアイテム「創造の石」から
隔てられています -
0:53 - 0:58手に入れるには 3つのエネルギーの流れに乗って
塔を登る必要があります -
0:58 - 1:04一歩前に出るやいなや
60秒のカウントダウンが始まります -
1:07 - 1:12部屋の奥には その中に
エネルギーを保持できる― -
1:12 - 1:15目に見えない塔がそびえています
-
1:15 - 1:1960秒が過ぎると エネルギーが勢いよく
上から降ってきて -
1:19 - 1:211ユニットずつ満たしていきます
-
1:21 - 1:25力場によって エネルギーが前後から
漏れないようになっているのです -
1:25 - 1:28始まるまでの60秒の間に
-
1:28 - 1:33エシックとヘッジはどれくらいのエネルギーを
降らせるかを決めなければなりません -
1:33 - 1:353回の挑戦のたびに
-
1:35 - 1:38塔のくぼみをちょうど満たす
エネルギー量を求めるのです -
1:38 - 1:42成功すれば エネルギーに乗って
上へと進むことができます -
1:42 - 1:47でも量を間違えると
エネルギーの昇降機は働かず -
1:47 - 1:48下に落ちてしまいます
-
1:48 - 1:51壁にある図に
例が示されています -
1:51 - 1:56この形の場合は 2ユニット分の
エネルギーが入ります -
1:56 - 2:01この形の場合は 4ユニット分―
左に3つ 右に1つです -
2:01 - 2:03この場合も 4ユニット分です
-
2:03 - 2:07なぜなら 右端に入ったエネルギーは
こぼれ出てしまうからです -
2:07 - 2:09降り注ぐエネルギーは
-
2:09 - 2:14周囲に支えるものがなければ
あふれてしまうのです -
2:14 - 2:19ヘッジはブロックの列を1列ずつ可視化して
高さを測ることができますが -
2:19 - 2:23全体の構造を一度に
見ることはできません -
2:23 - 2:26エシックがヘッジを
どのようにプログラミングすれば -
2:26 - 2:30それぞれの塔がくぼみに保持できる
エネルギー量を把握できるでしょう? -
2:30 - 2:33ビデオをいったん止めて
自分で考えてみましょう -
2:39 - 2:42ひとつの考え方は こうです
-
2:42 - 2:45それぞれの空の箱が
エネルギーを保持できるのは -
2:45 - 2:49その左方にも 右方にも
壁がある場合です -
2:49 - 2:52その左方にも 右方にも
壁がある場合です -
2:52 - 2:56でも これを各箱について確認すると
長い時間がかかってしまいます -
2:56 - 3:011列まとめて考えることは
できないでしょうか? -
3:01 - 3:05例えば この場合は何ユニット分
保持できるでしょう? -
3:05 - 3:10[ビデオをいったん止めて
自分で考えてみましょう] -
3:10 - 3:14先程の例で 問題を
分析してみましょう -
3:14 - 3:16ブロックは5列あります
-
3:16 - 3:20左端の列は 一番高いので
エネルギーを保持できません -
3:20 - 3:232列目は3ユニット分
保持できます -
3:23 - 3:27両側にある4段のブロックに
囲まれているからです -
3:27 - 3:32エネルギーがいっぱいになる高さ4から
-
3:32 - 3:36ブロックの高さ1を引いて
3という答えになります -
3:36 - 3:423列目も同様で 左に4段 右に4段あり
高さが3なので -
3:42 - 3:474引く3で1ユニット保持できます
-
3:47 - 3:514列目と5列目は
右手に自分より高いものがないので -
3:51 - 3:53エネルギーは保持できません
-
3:53 - 3:57この考え方を
アルゴリズムにすることができます -
3:57 - 4:01エネルギー量を求めたい列を基準にして
-
4:01 - 4:05ヘッジは1列ずつ見ていき
左方向で一番高い列を探し -
4:05 - 4:08それから右方向でも
一番高い列を探します -
4:08 - 4:13その2つの低い方が
エネルギーを貯められる高さです -
4:13 - 4:16この高さが
列自体の高さよりも高いならば -
4:16 - 4:19そこから列の高さを差し引きます
-
4:19 - 4:24すると その答えが その列に
保持できるエネルギー量になります -
4:24 - 4:27エネルギーを貯められる高さが
列自体の高さ以下なら -
4:27 - 4:30エネルギーはこぼれてしまいます
-
4:30 - 4:33ヘッジはループを使って
これをすべての列に適用できます -
4:33 - 4:39左端の列から右に向かって
1列ずつ調べていくのです -
4:39 - 4:41列ごとに同じ手順を踏みます
-
4:41 - 4:46左方向に一番高い列を探し
右方向に一番高い列を探し -
4:46 - 4:50どちらか低い方から
列自体の高さを引いて -
4:50 - 4:53その答えが正の数なら
総和にその分を加算します -
4:53 - 4:57ヘッジはループを列の数だけ
繰り返します -
4:57 - 5:01これで上手くいくのですが
サイズが大きいと時間がかかります -
5:01 - 5:05ヘッジは各列について左方向と右方向に
たどる手順を繰り返すためです -
5:05 - 5:10列がN個あると
N列すべてをN回参照することになります -
5:10 - 5:12もっと速い方法はあるでしょうか?
-
5:12 - 5:16ひとつの時間短縮法はこうです
手順を進める前に -
5:16 - 5:17ヘッジは左端から始めて
-
5:17 - 5:21各列に対する「左側で一番高い列」を
前もって調べておけます -
5:21 - 5:25この場合は まず2
最初の列のほうが高いので 再び2 -
5:25 - 5:28それから4、4、4、と続きます
-
5:28 - 5:31それから「右側で一番高い列」も調べ
-
5:31 - 5:37今度は右から左へ
1、3、4、4、4となります -
5:37 - 5:41結果として メモリ上に
こんな表が完成します -
5:41 - 5:46それから ヘッジはループをもう一回りさせ
さっきと同じ計算式を使い -
5:46 - 5:50各列に保持できるエネルギーを
計算できます -
5:50 - 5:54計算済みの左右の高さの
小さい方から -
5:54 - 5:57列自体の高さを引けばいいのです
-
5:57 - 6:02N列をN回参照する代わりに
N列を3回参照するだけでよく -
6:02 - 6:05これは線形時間です
-
6:05 - 6:08この解法をさらに最適化する方法も
ありますが -
6:08 - 6:11ここでは これで十分でしょう
-
6:11 - 6:13エシックとヘッジは
力を合わせます -
6:15 - 6:19最初の問題は楽勝で
塔を上へと進みます -
6:22 - 6:242つめは ちょっと手強いです
-
6:33 - 6:373つめは 大難問で
ブロックが何十列もあります -
6:37 - 6:41時間が刻々と過ぎますが
エシックのプログラムは高速で -
6:41 - 6:45ぎりぎりのところで
ハンドルの位置を合わせます -
6:49 - 6:53エネルギーに乗って 2人は
創造の石のありかへと導かれます -
6:56 - 7:01最初のアイテムの時と同じように映像が現れ
何年も前の記憶が蘇ります -
7:01 - 7:04世界を動かす機械が
すべてを変えてしまい -
7:04 - 7:07エシックはロボット主任技術者として
-
7:07 - 7:09目にする現実に
不安を感じるようになりました -
7:09 - 7:12そしてブラッドバリアが人々を
囲い込み始めたとき -
7:12 - 7:15何かが決定的におかしいと
気づいたのでした -
7:15 - 7:17そこでエシックは
3つのアイテムを作り -
7:17 - 7:21「力」「創造性」「記憶」を
人々に取り戻させる力を付与しました -
7:21 - 7:24そしてアイテムを3つの共同体に
隠したのです -
7:24 - 7:27人々にその使い方を教える前に
-
7:27 - 7:29政府はエシックのもくろみに気づき
-
7:29 - 7:32彼女や他のプログラマーを
ロボットに逮捕させてしまいました -
7:32 - 7:35世界を動かす機械を使って
エシックが最後に作ったのは -
7:35 - 7:38無知の及ぼす力から
この古代の装置を守るため -
7:38 - 7:42それを巨大な迷路に
封じ込めるロボットで -
7:42 - 7:45そのロボットをヘッジと名付けたのです
-
7:52 - 7:56警告もなしに エネルギーの昇降機は
突然消えてしまいました
- Title:
- プログラマーのように考える 第7話「悟りの塔」
- Speaker:
- アレックス・ローゼンタール
- Description:
-
アニメシリーズ『プログラマーのように考える』の第7話。全10話から成るこのシリーズは、エシックという女の子とロボットの相棒ヘッジが世界を救うために頑張るお話です。2人は3つのアイテムを集める冒険に出発しますが、その途中プログラミングのパズルを解きながら進まなければなりません。
講師:アレックス・ローゼンタール 監督:Kozmonot Animation Studio
*このビデオの教材:https://ed.ted.com/lessons/the-tower-of-epiphany-think-like-a-coder-ep-7 - Video Language:
- English
- Team:
closed TED
- Project:
- TED-Ed
- Duration:
- 07:58
![]() |
Moe Shoji edited Japanese subtitles for The Tower of Epiphany | Think Like A Coder, Ep 7 | |
![]() |
Moe Shoji approved Japanese subtitles for The Tower of Epiphany | Think Like A Coder, Ep 7 | |
![]() |
Moe Shoji edited Japanese subtitles for The Tower of Epiphany | Think Like A Coder, Ep 7 | |
![]() |
Yasushi Aoki accepted Japanese subtitles for The Tower of Epiphany | Think Like A Coder, Ep 7 | |
![]() |
Yasushi Aoki edited Japanese subtitles for The Tower of Epiphany | Think Like A Coder, Ep 7 | |
![]() |
Yasushi Aoki edited Japanese subtitles for The Tower of Epiphany | Think Like A Coder, Ep 7 | |
![]() |
Yasushi Aoki edited Japanese subtitles for The Tower of Epiphany | Think Like A Coder, Ep 7 | |
![]() |
Yasushi Aoki edited Japanese subtitles for The Tower of Epiphany | Think Like A Coder, Ep 7 |