Return to Video

プログラマーのように考える 第8話「難所」

  • 0:22 - 0:25
    塔から落下したエシックとヘッジは
  • 0:25 - 0:29
    エネルギーの急流に
    飲み込まれてしまいます
  • 0:31 - 0:37
    この急流はブラッドバリアから
    ハクセンボーグまで延々と続いています
  • 0:37 - 0:39
    ハクセンボーグでは
    街中にあふれる工場で
  • 0:39 - 0:41
    ロボットが生産されているほか
  • 0:41 - 0:47
    エシックが探し求める3つ目のアイテム
    記憶の石も隠されています
  • 0:47 - 0:50
    一日中 そして一晩中流されるうちに
  • 0:50 - 0:54
    2人はブロックと鋼鉄でできた
    渓谷にたどり着きました
  • 0:59 - 1:02
    ついに谷底へ真っ逆さまかと
    思った その時
  • 1:02 - 1:03
    ロープに助けられました
  • 1:07 - 1:11
    2人を助けてくれたのは
    そこで待ち受けていたレマでした
  • 1:11 - 1:15
    森林の塔でエシックが
    創造の石を手に入れた時
  • 1:15 - 1:19
    国じゅうの通信が
    回復したため
  • 1:19 - 1:24
    抵抗運動のリーダーのアディーラは
    すぐに仲間に呼びかけ始め
  • 1:24 - 1:26
    中でも重要だったのがレマでした
  • 1:26 - 1:32
    ハクセンボーグの街で機械を止めようと
    取り組んでいる有能な科学者です
  • 1:32 - 1:36
    あいにく無線通信は
    ロボットにも知られてしまい
  • 1:36 - 1:41
    ロボットたちは街の中心にある
    最後のアイテムを守るべく
  • 1:41 - 1:43
    防御態勢に入りました
  • 1:43 - 1:49
    アイテムに到達する道はただひとつ
    「分かれ道の難所」を抜ける必要があります
  • 1:49 - 1:55
    ハクセンボーグの地下の暗闇に広がる
    光るコンベヤーの迷路です
  • 1:55 - 1:57
    現在地点からスタートして
  • 1:57 - 2:01
    一定距離を進むと
    道が二手に分かれます
  • 2:01 - 2:05
    どの道も同じように
    繰り返し枝分かれしていきます
  • 2:05 - 2:07
    道は何千もあります
  • 2:07 - 2:13
    アイテムへと至るのはたったひとつ
    それ以外の道の先にあるのは破滅です
  • 2:13 - 2:18
    幸い 創造の石のおかげで
    ヘッジには不思議な力が備わりました
  • 2:18 - 2:21
    自分の小さなコピーを
    生み出せるのです
  • 2:21 - 2:26
    コピーにできることは2つ
    親に情報を送ることと
  • 2:26 - 2:30
    自分の小さなコピーを
    生み出すことです
  • 2:30 - 2:34
    生み出された子や さらにその子にも
    同じことができ
  • 2:34 - 2:37
    何世代でも作ることができます
  • 2:37 - 2:42
    警備の手が迫っており
    エシックには限られた時間しかありません
  • 2:42 - 2:47
    安全な道を見つけるには
    ヘッジをどうプログラムしたらよいでしょう?
  • 2:47 - 2:54
    ビデオをいったん止めて
    自分で考えてみましょう
  • 2:54 - 2:55
    ヒントまで 3秒
  • 2:55 - 2:56
    ヒントまで 2秒
  • 2:56 - 2:57
    ヒントまで 1秒
  • 2:58 - 3:03
    プログラマーには「再帰」という
    とっておきの道具があります
  • 3:03 - 3:08
    再帰というのは一連の指示が
    自らの呼び出しを含んでいることを言います
  • 3:08 - 3:11
    言葉を定義するのに
    その言葉自体を使うようなものです
  • 3:11 - 3:16
    言葉の定義には良くなくとも
    プログラミングではとても役立ちます
  • 3:16 - 3:20
    再帰では反復が行われますが
    ループとは違います
  • 3:20 - 3:24
    ループでは ある指示を
    何度も繰り返し実行しますが
  • 3:24 - 3:29
    再帰では ある指示を実行し始めて
    完了する前にその指示をまた実行し始め
  • 3:29 - 3:33
    それが完了する前にまた実行し始める
    という具合に繰り返されます
  • 3:33 - 3:37
    何らかの最終状態に到達するまで
    これが繰り返されます
  • 3:37 - 3:41
    それから一層一層 内から外へ
    情報が受け渡されていき
  • 3:41 - 3:44
    一番外まで来たら終了します
  • 3:44 - 3:49
    再帰は 問題がそれ自身と
    似た部分から構成されている
  • 3:49 - 3:52
    自己相似的構造を
    持つ場合に有用です
  • 3:52 - 3:56
    例えば 足を踏み入れる者を
    抹殺するように設計された
  • 3:56 - 4:00
    どこかの防御システムがそうです
  • 4:00 - 4:02
    ビデオをいったん止めて
    自分で考えてみましょう
  • 4:02 - 4:03
    ヒントまで 3秒
  • 4:03 - 4:04
    ヒントまで 2秒
  • 4:04 - 4:05
    ヒントまで 1秒
  • 4:05 - 4:08
    エシックに与えられた難題は
    表面的には不規則に見えますが
  • 4:08 - 4:12
    実は再帰を使った
    非常に簡単な解決法があります
  • 4:12 - 4:17
    その方法を見つけるために
    まず一番簡単な形を考えてみましょう
  • 4:17 - 4:20
    迷路に2つしか
    道がなかったらどうでしょう?
  • 4:20 - 4:25
    ヘッジがコピーを送り出せば
    間違った方へ行ったものは破壊されます
  • 4:25 - 4:28
    アイテムにたどり着いた
    もうひとつのコピーは
  • 4:28 - 4:32
    たどった道を報告できるので
    どちらが正しい道であろうと
  • 4:32 - 4:35
    ヘッジは正しい答えを
    受け取れます
  • 4:35 - 4:38
    これを再帰の「基本ケース」と言います
  • 4:38 - 4:42
    今度は迷路が出発点から2回
    枝分かれするとしましょう
  • 4:42 - 4:45
    それぞれの分かれ道で
    ヘッジのコピー
  • 4:45 - 4:48
    これを 枝 T1、T2 としておきますが
  • 4:48 - 4:53
    それが さらにコピーを作り
    葉 L1~L4 ができます
  • 4:53 - 4:56
    葉のうち3つは破壊されます
  • 4:56 - 5:00
    アイテムに到達したものが
    正しい答えを送り返しますが
  • 5:00 - 5:02
    受け取るのはその親だけです
  • 5:02 - 5:06
    分かれ道で待っている
    枝 T1、T2 のどちらかが
  • 5:06 - 5:08
    無線で報告を受けたなら
  • 5:08 - 5:11
    そちらがアイテムへと続く
    道だということです
  • 5:11 - 5:15
    ヘッジの視点から
    正しい答えを伝えるには
  • 5:15 - 5:17
    枝は自分がどちらへ向かったかと
  • 5:17 - 5:21
    無線で報告された道筋を
    教えればいいのです
  • 5:21 - 5:25
    分かれ道がいくつあろうと
    同じやり方でいけます
  • 5:25 - 5:28
    無線で聞いた答えが
  • 5:28 - 5:32
    その地点からアイテムへと
    向かう道筋であり
  • 5:32 - 5:34
    自分がどの道筋をたどったか
    付け加えれば
  • 5:34 - 5:37
    どうやってそこに行けるかを
    親に伝えられます
  • 5:37 - 5:44
    ヘッジのコピーたちが従うべきこの手順を
    「パスファインダー」と名付けましょう
  • 5:44 - 5:47
    ① アイテムに到達したら
  • 5:47 - 5:51
    左右のどちらの道を通ったかを
    親に伝えること
  • 5:51 - 5:55
    ② 分かれ道に来たら
    コンベヤーから降りて
  • 5:55 - 5:58
    新しいコピーを左右の道に送り出し
  • 5:58 - 6:01
    どちらにもパスファインダーを
    実行させること―
  • 6:01 - 6:03
    ここで再帰を使っているわけです
  • 6:03 - 6:08
    最後の指示が行われるまで
    それが何度も繰り返されます
  • 6:08 - 6:13
    ③ 最後に なにか情報が報告されたら
    親に報告し
  • 6:13 - 6:17
    このとき 左右どちらの道を
    たどったかと
  • 6:17 - 6:19
    聞いた情報をすべて繰り返すこと
  • 6:19 - 6:22
    パスファインダーは
    プログラマーが
  • 6:22 - 6:26
    関数とか サブルーチンとか 手続きと
    呼んでいるものの例です
  • 6:26 - 6:30
    どの名前で呼ぶにせよ
    考え方は同じです
  • 6:30 - 6:34
    簡単に再利用できるよう
    名前を付けられた一連の指示ということで
  • 6:34 - 6:37
    自分で自分を使うこともできます
  • 6:37 - 6:40
    この場面では ぴったりの方法です
  • 6:40 - 6:45
    たった3つの指示で
    すべての道筋を網羅できるのです
  • 6:46 - 6:48
    さて どうなるでしょう
  • 7:10 - 7:16
    警備の手がすぐそこに迫った時
    エシックとレマは変装します
  • 7:16 - 7:20
    ロボットたちを混乱させて
    ヘッジのために時間稼ぎをするのです
  • 7:31 - 7:36
    ついに 無線でヘッジに
    道順が送られてきました
  • 7:36 - 7:40
    コンベヤーに飛び乗って
    命からがら逃げ出す3人を
  • 7:40 - 7:44
    監視ロボットたちが
    全速力で追って行きます
Title:
プログラマーのように考える 第8話「難所」
Speaker:
アレックス・ローゼンタール
Description:

アニメシリーズ『プログラマーのように考える』の第8話。全10話から成るこのシリーズは、エシックという女の子とロボットの相棒ヘッジが世界を救うために頑張るお話です。2人は3つのアイテムを集める冒険に出発しますが、その途中プログラミングのパズルを解きながら進まなければなりません。

講師:アレックス・ローゼンタール 監督:Kozmonot Animation Studio
*このビデオの教材:https://ed.ted.com/lessons/the-gauntlet-think-like-a-coder-ep-8

more » « less
Video Language:
English
Team:
closed TED
Project:
TED-Ed
Duration:
08:01

Japanese subtitles

Revisions