見出し画像

高校数学をプログラミングで解く(数学A編)「3-3 整数の割り算と商および余り」

割引あり

マガジンリスト > 数学A編 3.整数の性質 > 3-3 整数の割り算と商および余り


はじめに

今回は、数学Aで学ぶ「整数と割り算と商および余り」について、特にプログラミングでよく利用される「余りによる整数の分類」を用いたプログラムの例を示します。

余りによる場合分け

プログラミングでは、「割り算での余りによる場合分け」を利用する機会が多いです。今回はその例を示します。

5で割った余りを用いた場合分けのプログラム例

まず、5 で割った余りを用いた場合分けのプログラムのソースコードを示します。

// 5の倍数を用いた場合分けの例
void setup(){
  size(300,300);
  noStroke();
  
  int w_num = width/10;  // 横に並べる数
  int h_num = height/10; // 縦に並べる数
  
  for(int i=0; i<w_num; i++){
    for(int j=0; j<h_num; j++){
      if( (i+j)%5 == 0 ){
        fill(255,0,0); // 赤色で塗りつぶす
      } else if( (i+j)%5 == 1 ){
        fill(0, 255,0); // 緑色で塗りつぶす
      } else if( (i+j)%5 == 2 ){
        fill(0, 0, 255); // 青色で塗りつぶす
      } else if( (i+j)%5 == 3 ){
        fill(255, 255, 0); // 黄色で塗りつぶす
      } else {
        fill(0, 0, 0); // 黒色で塗りつぶす
      } 
      rect(10*i, 10*j, 10, 10); // (i,j)の位置に正方形を描く
    }
  } 
}

ソースコード1 5で割った余りを用いた場合分けのプログラム

ソースコード1を、Processingの開発環境ウィンドウを開いて(スケッチ名を「division_into_cases」としています)、テキストエディタ部分に書いて実行すると、図1のように、実行ウィンドウのキャンバスに図形を描きます。

図1 スケッチ「division_into_cases」の実行結果

プログラムの解説

このプログラムはキャンバス上に10ピクセル×10ピクセルのサイズの正方形を縦横 30×30 に並べていくプログラムになっています。ただし、各正方形の色はその位置に依存して決まります。具体的には、横の位置 i 番目で縦の位置 j 番目の正方形の色は、

① i+j の値を 5 で割ったときの余りが 0 であった場合、赤色
② i+j の値を 5 で割ったときの余りが 1 であった場合、緑色
③ i+j の値を 5 で割ったときの余りが 2 であった場合、青色
④ i+j の値を 5 で割ったときの余りが 3 であった場合、黄色
⑤ i+j の値を 5 で割ったときの余りが 4 であった場合、黒色

となるように場合分けで決めています。

おまけ

ソースコード1では i+j の値を考えましたが、i+2*j の値を 5 で割った余りで場合分けした場合を考えてみます。

// 5の倍数を用いた場合分けの例2
void setup(){
  size(300,300);
  noStroke();
  
  int w_num = width/10;  // 横に並べる数
  int h_num = height/10; // 縦に並べる数
  
  for(int i=0; i<w_num; i++){
    for(int j=0; j<h_num; j++){
      if( (i+2*j)%5 == 0 ){
        fill(255,0,0); // 赤色で塗りつぶす
      } else if( (i+2*j)%5 == 1 ){
        fill(0, 255,0); // 緑色で塗りつぶす
      } else if( (i+2*j)%5 == 2 ){
        fill(0, 0, 255); // 青色で塗りつぶす
      } else if( (i+2*j)%5 == 3 ){
        fill(255, 255, 0); // 黄色で塗りつぶす
      } else {
        fill(0, 0, 0); // 黒色で塗りつぶす
      } 
      rect(10*i, 10*j, 10, 10); // (i,j)の位置に正方形を描く
    }
  } 
}

ソースコード2 ソースコード1の「i+j」を「i+2*j」にした場合

ソースコード2を、Processingの開発環境ウィンドウを開いて(スケッチ名を「division_into_cases2」としています)、テキストエディタ部分に書いて実行すると、図2のように、実行ウィンドウのキャンバスに図形を描きます。

図2 スケッチ「division_into_cases2」の実行結果

このように、割られる数(ソースコード1の「i+j」)を変えたり、割る数「5」を他の整数に変えたりしてみると、様々な図形が描けます。

まとめ

今回は、数学Aで学ぶ「整数と割り算と商および余り」について、特に「余りによる整数の分類」を用いたプログラムの例を示しました。一般的にプログラミングで、「余りによる場合分け」を行うことはよくあります。この場合分けの利用方法はぜひ身に着けておいてください。

読んだ感想などをお寄せください

本記事を読んだ感想や質問などを以下のお問い合せフォームからお寄せください。感想、質問をいただいた方には本記事の演習問題の解答をプレゼントします。(お問合せフォームの本文に、本記事のタイトルを入れてください。)


参考文献

改訂版 教科書傍用 スタンダード 数学A(数研出版、ISBN9784410209277)


演習問題

ソースコード1では i+j の値を考えましたが、i*i+j*j の値を 5 で割った余りで場合分けした場合を考えてみてください。


演習問題の解答例

ここから先は

204字 / 1画像 / 1ファイル

この記事が気に入ったらサポートをしてみませんか?