【Python】等比数列の和の公式を使って問題を解く

■等比数列の和の公式

初項a、公比r、項数nの等比数列の和Snは以下のように表す。

▼ r = 1 の場合(公式①)

▼ r < 1 の場合(公式②)

▼ r > 1 の場合(公式③)

※補足
r > 1 のとき、公式②を使用しても、分母・分子がマイナスになるだけなので公式②=公式③が成り立つ。

(例)初項2、公比3、第4項までの等比数列の和を求める。

(1)公式②を使用する場合・・・

(2)公式③を使用する場合・・・

▼参考(等比数列についての参照先)

■例題

以下の問題について等比数列の和を求める。

問題1
初項:4、公比:1、第7項までの等比数列の和

問題2
初項:7、公比:-3、第5項までの等比数列の和

問題3
初項:2、公比:3、第10項までの等比数列の和

■サンプルコード

# -*- Coding:UTF-8 -*-

def SumTohiSuretsu(a:int, r:int, n:int) -> float:
    # 合計の初期値をセット
    sum = 0

    # rについて、1、1より小さい、1より大きいで条件分岐
    if r == 1:
        # 公式①
        sum = a * n
    elif r < 1:
        # 公式②
        sum = (a * (1 - (r ** n))) / (1 - r)
    elif r > 1:
        # 公式③
        sum = (a * ((r ** n) - 1)) / (r - 1)


    return sum

if __name__ == '__main__':
    # 問題1 初項:4、公比:1、第7項までの等比数列の和
    a1 = 4
    r1 = 1
    n1 = 7

    print(SumTohiSuretsu(a1, r1, n1))

    # 問題2 初項:7、公比:-3、第5項までの等比数列の和
    a2 = 7
    r2 = -3
    n2 = 5

    print(SumTohiSuretsu(a2, r2, n2))

    # 問題3 初項:2、公比:3、第10項までの等比数列の和
    a3 = 2
    r3 = 3
    n3 = 10

    print(SumTohiSuretsu(a3, r3, n3))

■実行結果

28
427.0
59048.0

コメント