Pythonで数列「n + nn + nnn + …(m項)」の総和を計算する方法
このチュートリアルでは、数列 n + nn + nnn + … + n(m項) の総和を求めるコードをPythonで書いていきます。Pythonを使えば、この問題は非常にシンプルに解くことができます。まずは具体例を見てみましょう。
実行例
入力:
n = 1
m = 5
数列:
1 + 11 + 111 + 1111 + 11111
出力:
12345
アルゴリズム
以下の手順に従うことで、この問題を解決できます。
1. n と m を初期化する。
2. 合計値 total を 0 で初期化する。
3. 数列の次の項を生成するために、n のコピーを作成しておく。
4. ループを m 回繰り返す。
4.1. 現在の n を total に加算する。
4.2. n を「n * 10 + copy_n」で更新し、次の項を生成する。
5. total を出力する。
サンプルコード
実際のコードは以下の通りです。
# n と m を初期化
n = 1
m = 5
# 合計値 total を 0 で初期化
total = 0
# 次の項を生成するために n のコピーを作成
copy_n = n
# ループ処理
for i in range(m):
# 現在の n を合計に加算
total += n
# n を更新して数列の次の項を生成
n = n * 10 + copy_n
# 結果を出力
print(total)
実行結果
上記のコードを実行すると、以下の出力が得られます。
12345
仕組みのポイント
このアルゴリズムの鍵となるのは、「n * 10 + copy_n」という更新式です。例えば n = 1 の場合、
・1 × 10 + 1 = 11
・11 × 10 + 1 = 111
・111 × 10 + 1 = 1111
というように、各ステップで桁が一つ増えた新しい項を効率的に生成できます。文字列操作を使わずに純粋な数値演算だけで処理できるため、パフォーマンス面でも優れたアプローチです。
まとめ
本記事では、反復処理とシンプルな数式を組み合わせることで、数列「n + nn + nnn + …(m項)」の総和を効率的に計算する方法を紹介しました。同様の考え方は、フィボナッチ数列や等比数列など、他の漸化式的な数列の計算にも応用できます。記事の内容について不明な点がある場合は、コメント欄でお気軽にお尋ねください。
-
Pythonで学ぶ選択ソートの基本原理と実装方法をわかりやすく解説
本記事では、選択ソート(Selection Sort)の基本的な仕組みと、Python 3.xでの実装方法について詳しく解説します。 選択ソートとは? 選択ソートは、ソートされていない部分から最小値の要素を繰り返し見つけ出し、それを先頭に移動させることで配列全体を整列していくアルゴリズムです。処理の過程では、与えられた配列が次の2つの部分配列に分けられます。 すでにソートが完了している部分配列 まだソートされていない部分配列 選択ソートの各イテレーション(反復処理)では、未ソート部分から最小要素を取り出し、ソート済み部分の末尾に挿入していきます。この操作を繰り返すことで、最終的に配列全体
-
Pythonで正四面体の表面積を計算するプログラム(√3×a²の公式)
本記事では、正四面体の表面積を求める問題の解き方とそのアプローチについて詳しく解説します。 問題文 正四面体の一辺の長さが与えられたとき、その正四面体の表面積を求める必要があります。 正四面体とは 正四面体(Tetrahedron)とは、三角形を底面としたピラミッドのような形状の立体図形です。4つの三角形の面(側面に3つ、底面に1つ)と、4つの頂点(角)を持つ立体オブジェクトです。 計算式 一辺の長さを a とすると、正四面体の表面積は次の公式で求められます。 表面積 = √3 × a² この公式をもとに、以下のように面積を計算する関数を定義します。 サンプルコード import math