見出し画像

高校数学10分プログラミング(数学B編 3.数列)8日目「群数列の問題を考える」解説

マガジンリスト > 数学B編 3.数列 > 8日目 解説

本日の課題、おつかれさまでした。

課題の群数列の問題を解くプログラムを作成することができたでしょうか。


解答例

今回の課題の群数列の問題を解くプログラムの例を示します。

// 群数列の問題
void setup(){

  int n = 10; // 第n群
  int m = 10; // m番目
  
  // (1) 第n群のm番目の数
  println("(1)第"+n+"群の"+m+"番目の数:", group_progression(n,m));
  // (2) 第n群の数の和
  println("(2)第"+n+"群の数の和:", sum_group_progression(n));
}

// 初項a,公差dの等差数列の第n項を求める関数(一般項)
float calc_arithmetical_progression(
  float a, // 初項
  float d, // 公差
  int n // 第n項
){
  return a + (n-1)*d;
}

// 第n群のm番目の項の値を返す関数
float group_progression(
  int n, // 第n群
  int m  // 第n群のm番目の項
){
  float a_nm = 1.0; // 初項a_11で初期化
  // 各n群の1番目の項の階差数列が初項1,公差1の等差数列になることを利用
  for(int k=1; k<n; k++){
    a_nm = a_nm + calc_arithmetical_progression(1.0,1.0, k);
  }
  a_nm += m-1.0;
  
  return a_nm;
}

// 第n群の数の和を返す関数
float sum_group_progression(
  int n // 第n群
){
  float S_n = 0.0;
  for(int k=1; k<=n; k++){
    S_n = S_n + group_progression(n,k);
  }
  return S_n;
}

ソースコード2 群数列の問題を解くプログラム(完成版)

ソースコード2を、Processing の開発環境ウィンドウを開いて(スケッチ名を「group_progression_problem」とします)、テキストエディタ部分に書いて実行すると、コンソールに

(1)第10群の10番目の数: 55.0
(2)第10群の数の和: 505.0

と出力されます(図1)。

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


本日は以上です。
明日は、数列の漸化式について考えていきます。

明日もよろしくお願いします。


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

本記事を読んだ感想や質問などを以下のお問い合せフォームからお寄せください。(お問合せフォームの本文に、本記事のタイトルを入れてください。)


MK’s papa


いいなと思ったら応援しよう!