知恵袋の群数列の問題をPythonで解いてみました。(^_^;
1/1,2/2,3/2,4/3,5/3,6/3,7/4,8/4,9/4,10/4…のような分数の列(分母がnである分数はn個あり、分子は1から並べた物を作る。
このとき初項から第200項までの分数の和を求めよ 。
第i群の項数は、i[個]で、群数列の第i群のj番目の項が原数列の第n項だとすると、次式が成り立ちます。
このとき、iとnには、次の関係も成り立ちます。四捨五入して整数化する関数をRound(x)とすると、
一般項は、次式で表されます。
また、一般項は、次式で表すことが出来ます。これを検算用としました。(^_^;
そういえば、今日で300日達成、金市民になるはずです。o(^-^)o
● GrpSeq3.py
# coding: UTF-8 # GrpSeq3.py from fractions import Fraction from math import sqrt def Round(x): return int(round(x)) # int(x+.5) def main(): M = 200 N = Round(sqrt(2*M)) a = [Fraction(i*(i-1)//2+j,i) for i in range(1,N) for j in range(1,i+1)] a+= [Fraction(N*(N-1)//2+j,N) for j in range(1,N+1) if N*(N-1)//2+j<=M] print("S= %s"%sum(a)) # 検算 b = [Fraction(n,Round(sqrt(2*n))) for n in range(1,M+1)] print("S= %s"%sum(b)) print(a==b) if __name__ == '__main__': main()
●実行結果
S= 5369/4 S= 5369/4 True
- 作者: 辻真吾
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/24
- メディア: 大型本
- 購入: 19人 クリック: 199回
- この商品を含むブログ (59件) を見る
- 作者: 柴田淳
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2012/08/25
- メディア: 単行本
- 購入: 1人 クリック: 13回
- この商品を含むブログ (41件) を見る
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ,露木誠,ルイス・イアン,石本敦夫,小田切篤,保坂翔馬,大谷弘喜
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (30件) を見る