【プログラムを考えるための思考】論理とは

数学

こんにちは、かじつとむです。

突然ですがみなさんは、論理についてご存知でしょうか?
コンピュータに指示したり、プログラムを書くときにとても重要なのが論理です。

今回はそんな論理について説明します。

この記事を読むことで以下のことがわかります。

  • 論理の概要について理解できる
  • 論理に使う用語である命題と真偽について理解できる
  • 論理の基本的な考え方について理解できる

それではいってみましょう!

【プログラムを考えるための思考】論理とは:論理の概要

論理は、あいまいさをなくし厳密で正確な記述をするための道具です。

コンピュータを指示するためのプログラムを書くために論理が必要になっていきます。

書いてあるプログラムが正しければ、コンピュータは何回でも正しくかつ安定して動作します。
一方でプログラムが誤っていたり、あいまいに書かれている場合、コンピュータは正しく動きません。

よって、今自分がコンピュータに指示したいプログラムは、正しいかどうか考えるために必要があります。

このようなチェックを行うために、論理よく理解し、自由に使えるようにする必要があります。

【プログラムを考えるための思考】論理とは:命題と真偽

論理を考える上で必要な用語が2つあります。それは命題真偽です。

命題とは、正しいか正しくないかを判断できる文のことをいいます。

たとえば、「Aさんの年齢は20歳以上である」といったように正しいかどうか判断できる文はすべて命題となります。

命題が正しいとき、この命題は真(もしくはtrue)といいます。一方で、命題が正しくないとき、この命題は偽(もしくはfalse)となります。

「Aさんの年齢が20歳以上である」という命題に対して、Aさんが20歳・25歳・40歳・100歳であれば、命題は真となります。一方で、Aさんが19歳・10歳・6歳・0歳であれば、命題は偽となります。

命題を設定する上で大切なのは、「もれ」と「だぶり」がないようにすることです。

たとえば、「年齢が20歳より上の場合は真、20歳未満は偽」という命題は20歳に「もれ」が発生しているため、判断できません。

また、「年齢が20歳以上の場合は真、20歳以下は偽」という命題は20歳に「だぶり」が発生しているため、判断できません。

このように、命題を考える場合は境界を含むのか、含まないのかをはっきりさせて、正しく判断できるようにします。

また、「もれ」がないことを網羅的である、「だぶり」がないことを排他的であるといいます。

問題を網羅的かつ排他的に分けることをMECE(Mutually Exclusive and Collectively Exhaustive)と呼びます。

【プログラムを考えるための思考】論理とは:論理の基本

論理を考えるのに重要なのは、2分割にすることです。

これは、たくさんの分割をいっぺんにやってしまうと、1つ1つは単純な分割でもどこかにミスが発生し、プログラムにバグが発生してしまいます。

まずは、単純な2つの分割を行い、これを積み上げていくことで複雑な論理でもかんたんに表現できます。

【プログラムを考えるための思考】論理とは:まとめ

いかがでしたでしょうか?以下まとめです。

  • 論理は、あいまいさをなくし厳密で正確な記述をするための道具
  • コンピュータに指示したいプログラムが、正しいかどうか考えるために論理を使う
  • 論理を考えるのに「命題」と「真偽」という2つの用語があり、正しいかどうかの判断ができる文を命題といい、正しいときは真、正しくないときは偽と呼ばれる
  • 命題は「もれ」や「だぶり」がないようにする
  • 論理を考えるのに重要なのは2分割で単純にすることである

みなさんもぜひ論理について理解し、使えるようになりましょう!

コンピュータで使う数学をもっと勉強したい方へ

コンピュータで使う数学をもっと勉強したい場合は、「プログラマの数学 第2版」がおすすめです。

created by Rinker
¥2,420 (2022/09/30 00:16:44時点 楽天市場調べ-詳細)

この本では、プログラマになるために必要な数学について網羅的に解説しています。

先ほどの、論理の話はもちろん、剰余、帰納法、順列・組合せ、再帰や指数といった数学の内容を勉強することができます。

後半では、問題の解き方や機械学習の第一歩といったプログラマの考え方を解説している本となっています。

図解でわかりやすいこともさることながら、クイズ形式で実際に解いてみることもできる本となっています。

プログラマーになりたい人で、基礎的な数学を理解したい方にはぜひおすすめの1冊となっていますので、もしよろしければ以下のリンクからどうぞ!

created by Rinker
¥2,420 (2022/09/30 00:16:44時点 楽天市場調べ-詳細)

みなさんも、この本を読んでぜひプログラマーが使うための数学について理解してみてください!

最後までこの記事を読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました