← メディア一覧

AND_OR_NOT_コンピュータの論理基礎

16分17秒 | 論理回路基礎FE

基本情報技術者試験の頻出テーマを解説した音声コンテンツです。

トランスクリプト(字幕テキスト)

こんにちは、『ザ・ディープダイブ』へようこそ。さて、あなたは普段何気なく使っている スマートフォンとか、まあパソコンが、一体どうやって考えているのか、本気で考えたことありますか? コンピューターの思考なんて言うと、なんかこうすごく複雑で、専門家じゃないと、えーっと、理解できない世界に聞こえますよね。 僕もずっとそう思ってたんですけど、先日、まさにその思考の根幹にある『論理演算』っていう仕組みを、驚くほど身近な例えで解説してる資料を見つけたんですよね。 今回の目標はですね、その資料をこう道しるべに、コンピューターの思考の基本、えっと、本当に基本中の基本である 『AND』『OR』『NOT』。このたった3つのシンプルなルールを、まあ、あなたの頭の中にストンと落とし込むということです。 数学というよりは、ルールの組み合わせを解き明かす、なんか知的なパズルみたいな感覚で楽しんでいただけたらと思います。 ええ。そしてこの一見単純な3つのルールが、こう積み木みたいに組み合わさっていくことで、どうやって現代のあの複雑なテクノロジーを形作っているのか、 その繋がりが見えてくると、デジタルの世界が全く違って見えてくるはずです。シンプルな要素から信じられないほど複雑なシステムが立ち上がっていく、 その過程を一緒に探っていきましょう。では、早速その中身を詳しく見ていきましょうか。まずはコンピューターの思考回路の基本、最初のルール、AND。 日本語だと『論理積』ですね。この資料で使われてる『お年玉をもらうための条件』っていうアナロジーがもう本当に秀逸なんです。 ちょっと想像してみてください。親からこう言われるんです。今年のお年玉が欲しければ、テストで100点を取る、 かつ、家のお手伝いを毎日すること。この2つを両方とも達成したらあげよう、と。これがANDのルールです。どうでしょう、かなり厳しい条件に感じませんか? ええ、非常に厳しいですね。ここで、あの重要になってくるのが、あなたが強調してくれた『かつ』という部分なんです。 この考え方を、コンピューターが理解できる1と0の世界に置き換えてみましょうか。コンピューターの世界では、あらゆることをイエスかノーか、あるいは 真か偽かで判断します。これを数字で表したのが1(真)と0(偽)なんですね。条件を満たした状態が1で、満たしていない状態が0。 なるほど。AND回路の場合、入力が2つあります。今の例で言うと、テストで100点を取ったかっていう入力Aと、 お手伝いをしたかという入力Bですね。この2つの入力に対して、お年玉がもらえるかという結果が1つだけ出てくる。ANDのルールでは、 入力Aと入力Bが両方とも1のときだけ、結果が1になるんです。つまり、テストで100点を取って1、かつお手伝いもした1。 このときだけお年玉がもらえる1なわけです。あーなるほど。ということは、テストは100点だったけど1、お手伝いを一日サボっちゃった0なら、 お年玉はもらえない0。そうそう。逆にお手伝いはすごく頑張ったけど1、テストが95点だった0の場合も、もらえない0。 もちろん両方だめなら0と0、もらえない0。まるで、全部が揃わないと絶対に扉を開けてくれない厳格な門番みたいですね。 あの、ウェブサイトのログイン画面でIDとパスワードが両方合ってないと入れないっていうのは、この仕組みですか?ええ、その通りです。 その門番のイメージはすごく的確ですね。そして重要なのは、その門番は一切おまけをしてくれないということなんですよ。 おまけをしてくれない。はい。IDが99.9%合っていても、100%じゃなければ絶対に扉を開けない。 その非常なまでの厳格さが、デジタル世界の正確性を担保しているんです。非常なまでの厳格さ、ですか。確かに。 でもそれだとコンピューターってなんだかすごく融通の利かない存在に思えてきちゃいますね。もう少しこう柔軟な判断っていうのはないんでしょうか。 いい質問ですね、もちろんあります。そんな厳しいルールばかりでは複雑な判断はできませんからね。そこで登場するのが、 2つ目のルール『OR』。日本語で『論理和』です。これはANDとは対照的にかなり柔軟なルールですよ。 おおー柔軟なルール。それもさっきのお年玉の例えで見ていきましょう。今度は条件がこう変わります。 テストで100点を取る、または家のお手伝いを毎日する。どっちか片方でも頑張ったらお年玉をあげよう。 どうですこれ、さっきのANDと比べるともう天国と地獄くらい優しく感じませんか?そうですね。資料にも『優しい』って書いてあって、思わず頷いちゃいました。 このANDとORの対比がコンピューターの判断に幅を生み出している点で、非常に興味深いですよね。では、この優しいルールORも 1と0の世界で見てみましょう。ANDと同じく入力A(テスト)と入力B(お手伝い)があります。OR回路では、 この入力のどちらか一方でも1であれば、結果は1になります。ということは、テストで100点を取れば1、お手伝いをしていなくても0、 お年玉はもらえる1。そうです。逆にお手伝いを頑張れば1、テストがだめでも0、ちゃんともらえる1。ええ。 もちろん両方頑張ったら1と1、文句なしにもらえる1と。お年玉がもらえないのはテストもだめ0、 お手伝いもサボった0っていう本当にどうしようもないときだけなんですね。その通りです。 このルールは複数の選択肢の中から最低1つでも条件を満たせばOKというこう間口の広い判断に使われます。 例えば、スマートフォンのロック解除。『顔認証』または『指紋認証』または『パスコード入力』、このどれか1つでロックが外れるじゃないですか。 ああ、確かに。あいた機能の裏側では、このORの考え方が活躍しているわけです。ANDが条件を絞り込むための門なら、ORは選択肢を広げるための門と言えますね。 なるほどなー。全部ないと言ダメなANDと、どれかあればOKなOR。これでだいぶ判断の幅が広がりましたね。さて、基本のルールはあと1つです。 最後のルールは『NOT』。日本語では『否定』。これは今までの2つと比べてすごくシンプルで、単純に逆にする、ひっくり返すというルールです。 資料にあった例もわかりやすかったんですけど、『宿題が終わっていない』という状態をコンピューターの世界で0だとしたら、 この状態にNOTを適用すると『宿題が終わっている』状態、つまり1になる。ただそれだけ。白を黒に、イエスをノーにひっくり返す。 すみません、一つ素朴な疑問なんですけど、これって0と1を逆にするだけですよね?はい。それ自体は何の役にも立たないように聞こえるんですが、 どうしてこれが基本ルールの一つとしてそんなに重要なんですか?素晴らしい質問です。まさにその点がNOTを理解する上で一番の鍵になります。 おおー。おっしゃる通り、単体ではほとんど意味をなしません。コンピューターの世界では、このNOT回路は『インバーター』つまり『反転機』と呼ばれていて、 0を1に1を0にするだけの機能なんです。しかし、この単純な反転操作がですね、先ほどのANDやORと組み合わさることで、 一気に複雑な条件を作り出すための、まあ、魔法の杖になるんです。魔法の杖、ですか。ええ。例えば、ユーザーIDは正しい(A)が パスワードは間違っている(B)という条件を判定したいとします。これを論理式にすると『A AND (NOT B)』となります。 あー、なるほど。パスワードは間違っているという部分を作るために、まずBの状態をNOTでひっくり返す必要があるわけですね。 この、ひっくり返すという一手が加わるだけで、作れる条件のバリエーションが爆発的に増える。単体では地味ですけど、 他の回路と組み合わせることで真価を発揮する名脇役のような存在なんです。なるほど。Aではない、Bではない、という条件を作るために必要なパーツなんだ。 いや、ようやくNOTの重要性がわかりました。厳しい門番のAND、優しい選択肢のOR、そして天邪鬼な名脇役NOT。ここまでで基本の3つが出揃いましたね。 この話を頭の中で図としてイメージすると、さらに理解が深まるそうです。資料でも紹介されていたんですが、『ベン図』っていうのを使うといいとか。 学生時代に数学で見たことがあるかもしれません。2つの円が少しだけ重なっている図を想像してみてください。まず、その円が重なっている真ん中の部分。 これがまさにANDですよね。テスト100点の円とお手伝いの円、その両方に含まれる部分です。そして、2つの円を合わせた全体の領域。 つまり、どちらかの円に少しでも入っていればOKという範囲、これがOR。最後のNOTは、例えばテスト100点の円のNOTと言われたら、 その円の外側のすべての領域を指す。その条件に当てはまらない、それ以外全部ということですね。ええ。 この視覚的な表現が、なぜこれほど強力なのか。それは、抽象的だった『かつ』とか『または』といった論理のルールが、 具体的な領域とか重なりといった関係性として直感的に理解できるようになるからなんです。記号の操作だと思っていたものが、 実は集合の考え方と深く結びついているってことがこの図を見ると一目瞭然になります。論理演算は単なる計算ではなくて、 情報を整理して分類するための強力なツールなんだっていう本質が見えてくるんです。確かに、テスト100点の円とお手伝いの円を思い浮かべれば、 お年玉がもらえる範囲が一瞬でわかりますもんね。でも、ここで資料の登場人物も抱いていた、そして僕もまだ完全に腹落ちしてない疑問が湧いてくるんです。 この点を掘り下げてみたいんですけど、コンピューターって本当にこんな単純なイエス・ノーの組み合わせだけであの複雑な処理をしてるんでしょうか。 僕らが今見てるこの画面の表示とか、オンラインゲームのキャラクターの動きとか、全部がこのAND, OR, NOTだけで動いてるなんて、にわかには信じがたいんですが。 その驚きはとても自然なものだと思います。そして答えは、驚くべきことにイエスなんです。そうなんですか。 もちろん、実際にはこの3つの基本ルールを組み合わせたもう少し便利な回路も使われます。資料にもありましたが、『NAND』。 これはANDの結果をNOTでひっくり返したもの。あるいは『XOR』排他的論理和。これはどちらか一方だけが1の時に1になるっていうちょっと特殊なルールですね。 ただ重要なのは、それらも元をたどればすべてこの基本3つの組み合わせで実現できるということです。それでもまだピンとこないというか、 その単純な組み合わせがどうやって例えば計算のような知的な作業に繋がるんでしょう。そこですよね。 では、一番分かりやすい例として、コンピューターが1+1という最も単純な足し算をするときを考えてみましょう。1+1。 二進数の世界では1+1の答えは10、つまり答えは0で1繰り上がるとなります。実はこの計算、先ほど出てきたXORとANDの組み合わせだけで実現できるんです。 え、足し算があの論理ルールで。そうなんです。まず2つの入力、どちらも1ですけど、これをXOR回路に入れます。 XORはどちらか一方だけが1の時に1になるルールなので、両方1だと結果は0になります。これが足し算の答えの桁です。はい。 次に、同じ2つの入力をAND回路にも入れる。ANDは両方とも1の時に1になるルールなので、結果は1になります。これが繰り上がりの桁です。なるほど。 結果として1と0が出力されて、合わせて10という答えが導き出される。これがコンピューター内部で行われている足し算の正体、 『半加算器』と呼ばれる回路の基本です。すごい。計算という行為が論理の組み合わせに分解されてしまった。まさに。 そしてこれをより大きな視点で捉えてみると、この単純な足し算ができる回路を今度は何千個何万個と並べていくことで、 もっと大きな桁の足し算や掛け算、割り算ができるようになります。その計算能力の積み重ねの果てに、ゲームのキャラクターの動きを 物理法則に従って計算するというような、我々が高度だと感じる処理が成り立っているのです。やっと繋がりが見えました。 一つ一つの判断は「入力AとBは両方1か」とか「入力Cは0か」みたいなシンプルなものだけど、その判断を行う回路をブロックのように組み立てて 「足し算」っていう機能を作り、さらにその足し算ブロックを大量に組み合わせてより複雑な計算機能を作っていく。その通りです。 あなたが今使っているスマートフォンやPCの中には、この基本の論理ゲート、つまり判断の最小単位が何十億個というスケールで詰め込まれています。何十億個。 そしてそれらが1秒間に何十億回という人間の認識を遥かに超えたスピードでカチカチカチと判断を繰り返している。 シンプルなルールの圧倒的な量と速度、それが現代のコンピューターの力の源泉なんです。いや面白い。つまり、ここまでの話をまとめると、こういうことですね。 コンピューターの思考の根幹には3つのシンプルなルールがありました。まずはAND(論理積)。『かつ』のルールで、 テストとお手伝いすべてが揃って初めて1になる厳格な門番。次にOR(論理和)。『または』のルールで、 テストかお手伝いどちらか1つでも頑張れば1になる柔軟な門。そして最後にNOT(否定)。逆のルールで、0と1をひっくり返すだけ。 単体では無力に見えるけど、他のルールと組み合わせることで複雑な条件を生み出す魔法の杖でした。そして、これらのおどろくほどシンプルなルールを ブロックのように組み合わせて、足し算などの機能を作り、それをさらに何十億個も集めて超高速で動かすことで、 私たちが毎日使っているデジタル機器のあの複雑な動きを支えているということでした。完璧な要約です。 次にあなたがコンピューターに触れるとき、あるいはスマートフォンの画面をスワイプするとき、その滑らかな動きの裏側で 目に見えない無数のAND, OR, NOTたちが超高速で判断を繰り返している様子を想像してみてください。いつも見ているデジタルの世界が、 少し違った解像度で見えてくるかもしれません。ミクロの世界の無数の判断が、私たちのマクロな体験を作り上げている。そのダイナミズムを感じられるはずです。 確かに、これからはスマホを見る目が変わりそうです。最後にあなたに一つ、考えてみてほしい問いがあります。 今日の話で、コンピューターの思考というのがこれほどまでにシンプルで、一切の曖昧さや感情を許さない、厳格な論理ルールに基づいていることがわかりました。 では、この先、この仕組みから人間のような意識や知性は本当に生まれうるのでしょうか。それとも、1と0の組み合わせを どれほど天文学的な数まで積み重ねても、決して越えられない壁というものが、そこには存在するのでしょうか。

このコンテンツは Web society で視聴・学習できます。