マッチ棒ピラミッドに必要な本数を求めるPythonプログラム
この記事では、以下の問題文に対する解決策について学んでいきます。
問題文
ある整数 X が与えられます。X はマッチ棒で作るピラミッドの段数を表しています。X 段のマッチ棒ピラミッドを完成させるために必要な、マッチ棒の総本数を求めて表示してください。
考え方
マッチ棒で正三角形を組み上げていく場合、1辺に n 本のマッチ棒を使用するとき、必要なマッチ棒の総数は「3 × n × (n + 1) ÷ 2」で表されます。この公式を利用することで、x 段のピラミッド全体に必要なマッチ棒の総本数を簡単に計算することができます。
実装例
# 関数の定義
def numberOfSticks(x):
return (3 * x * (x + 1)) / 2
# main()
n = 21
a = numberOfSticks(n)
print(int(a))
出力
693

コードの解説
このプログラムでは、すべての変数がローカルスコープ内で宣言されています。関数 numberOfSticks は引数 x を受け取り、公式に基づいて必要なマッチ棒の総数を返します。main 部分では n = 21 を渡して計算を行い、結果を整数として出力しています。
まとめ
この記事では、Pythonを使って三角マッチ棒の数、すなわち x 段のマッチ棒ピラミッドを構築するのに必要なマッチ棒の総本数を求めるプログラムの作り方について学びました。数学的な公式を活用することで、ループ処理を使わずとも効率的に答えを導き出せる点がポイントです。
-
Pythonでn番目のカタラン数を計算するプログラム|再帰法と動的計画法
本記事では、n番目のカタラン数を計算する方法について解説します。 カタラン数(Catalan number)は、次の漸化式で定義される自然数の数列です。 $$C_{0}= 1,\quad C_{n+1}=\displaystyle\sum\limits_{i=0}^n C_{i}C_{n-i}\quad (n \geq 0)$$ n = 0, 1, 2, 3, … に対するカタラン数は、1, 1, 2, 5, 14, 42, 132, 429, … と続きます。 カタラン数は、再帰法と動的計画法のどちらのアプローチでも求めることができます。それでは、それぞれの実装方法を見ていきましょう。 方法
-
【Python】与えられた数がフィボナッチ数かどうかを判定する方法を解説
本記事では、以下の問題文に対する解決策について詳しく学んでいきます。 問題の定義 数値 n が与えられたとき、その数がフィボナッチ数であるかどうかを判定します。 ご存知のとおり、n番目のフィボナッチ数は「直前の2つのフィボナッチ数の和」として定義されます。しかし、この漸化式以外にも、フィボナッチ数には興味深い数学的な性質が存在します。 フィボナッチ数の判定に使える重要な性質 ある数 n がフィボナッチ数であるのは、次の条件が成り立つ場合、かつその場合に限られます。 5×n² + 4 が完全平方数である または 5×n² − 4 が完全平方数である つまり、上記のどちらか一方(または両方)が