先日、ある人と話しているときに、私が大学で数学を学んだことを告げると、「なぜ、マイナス×マイナス=プラスとなるのか」と質問を受けた。
どうやら、「マイナス×マイナス=プラス」はルールとして覚えているようだった。

この質問を受けたとき、正直に言うと「すばらしい」と思った。なぜそう思ったのかというと、すでに当たり前として組み込まれている「マイナス×マイナス=プラス」に対して、疑問に感じて投げかけているからである。

そこで、分かり易い説明を考えてみたが思いつかず、また時間もなく返答できなかったため、後で上手な説明はないかとGoogle検索してみると、2通りの説明があった。

  • 何かに例えて文章で説明
  • 数式を用いて数学的に説明

この2つを比較して感じたことは、「何かに例えて文章で説明」の方が読み難かった。
また、理解の難易度という観点では、どちらも同じような気がした。

そこで、ここでは「なぜ、マイナス×マイナス=プラスとなるのか」という問いに対して、「数式を用いて数学的に説明」してみることにする。

ここからは、掛け算「×」を「⋅」と記述し、整数の世界で「マイナス×マイナス=プラス」となることを見ていこう。
ちなみに、整数とは「…, -2, -1, 0 , 1, 2, …」のような数のことである。

整数の性質

整数は次の性質を持つ(0,1,a,b,cは整数)。

  1. a⋅0 = 0⋅a = 0
  2. a⋅1 = 1⋅a = a
  3. a + 0 = 0 + a = a
  4. a + (-a) = a – a = (-a) + a = -a + a = 0
  5. a⋅(b + c) = a⋅b + a⋅c
  6. a,bが整数ならばa⋅bも整数

これらを言い換えると、次のようになる。

  1. 任意の整数に対して、0を掛けると、ゼロになる
  2. 任意の整数に対して、1を掛けても、変化なし
  3. 任意の整数に対して、0を加えても、変化なし
  4. 任意の整数に対して、その整数にマイナスを掛けた数を加えると、ゼロになる
  5. 2つの任意の整数に対して、その2つの整数を加えた後ある整数を掛けた数と、2つの整数それぞれにある整数を掛けた数を加えた数とは一致する
  6. a,bが整数ならばa⋅bも整数である

証明

それでは、次が成り立つことを示す。

(-1)⋅(-1) = 1

性質1から次が成り立つ。

(-1)⋅0 = 0

性質4から左辺の0を1+(-1)で置き換える。

(-1)⋅(1 + (-1)) = 0

左辺に性質5を適用する。

(-1)⋅1 + (-1)⋅(-1) = 0

性質2から(-1)⋅1を(-1)で置き換える。

(-1) + (-1)⋅(-1) = 0

両辺に1を加える。

1 + (-1) + (-1)⋅(-1) = 1 + 0

左辺に性質4、右辺に性質3をそれぞれ適用する。

0 + (-1)⋅(-1) = 1

性質6から (-1)⋅(-1) も整数となるので、左辺に性質3を適用する。

(-1)⋅(-1) = 1

となり示された。

終わりに

分かり難かっただろうか。もし、そうならば是非、紙とペンを用意して実際にゆっくりと一つ一つ書き写して言って欲しい。

注意して欲しいこととして、今示されたことは、「(-1)⋅(-1) = 1」が成り立つということだけだ。
「マイナスの整数×マイナスの整数=プラスの整数」となることが示されたわけではない。
これを証明する真にすばらしい方法を思いついたが、これを書くには時間が少なすぎるため省略する。

是非この拡張を目の前に紙とペンを用意して、チャレンジしてみてほしい。
きっと、良い頭の体操になるはずだ。

関連する記事

  • Python 度数分布表から乱数を生成するPython 度数分布表から乱数を生成する Pythonで与えられた度数分布に従う乱数を生成する方法をご紹介する。 さっそくだが、全コードを以下に記す。 import random import matplotlib.pyplot as plt def random_freq_index(freq_list): """ 度数分布表から乱数を生成してインデックス番号を返します […]
  • Opal ユーザーを登録する方法Opal ユーザーを登録する方法 OBiBaのOpalサーバにユーザーを登録する方法をお伝えします。 ユーザー登録はAdministratorが行うことができる機能になります。 そのため、administratorでサインインします。 表示された画面の右上にあるAdministrationをクリックします。 Administration機能一覧から、Users and […]
  • R言語 CRANパッケージ一覧R言語 CRANパッケージ一覧 CRANで公開されているR言語のパッケージの一覧をご紹介します。英語でのパッケージの短い説明文はBing翻訳またはGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。何かのお役に立てれば幸いです。 パッケージ確認日:2022/09/01 パッケージ数:18571 また、パッケージをお探しの方は「R言語 CRAN Task […]
  • R言語 CRAN Task View:最適化と数理計画R言語 CRAN Task View:最適化と数理計画 CRAN Task View: Optimization and Mathematical Programmingの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Florian Schwendinger, Hans W. […]
  • Ubuntu OpenCVをインストールする手順Ubuntu OpenCVをインストールする手順 Ubuntu16.04にOpenCV3.3をインストールする手順をお伝えいたします。 OpenCVは、JPEGとPNGの画像だけを扱うように、できるだけ最小の構成を目指します。 そのため、動画に関する設定はできるだけ除いた形でインストールを行います。 環境 今回の作業環境を確認しておきます。また、以下の作業はすべてターミナルにて行っております。 Ubuntuのバージ […]
なぜマイナス×マイナス=プラスとなるのか