知恵袋の群数列の問題をPythonで解いてみました。(^_^;
数列 1/1, 1/2, 3/2, 1/3, 3/3, 5/3, 1/4, 3/4, 5/4, 7/4, 1/5 ……について、この数列の第800項を求めよ。
ちなみに、群数列の第n群のm番目の項が原数列の第k項だとすると、この問題の場合、次式が成り立ちます。
また、第n群のm番目の項は、次式で表されます。
● GrpSeq1.py
# coding: UTF-8 # GrpSeq1.py from math import sqrt from fractions import Fraction n=int(sqrt(2*800))+1 # 少し多めにとる a=[Fraction(2*j-1,i) for i in range(1,n+1) for j in range(1,i+1)] print(a[799:800])
●実行結果
[Fraction(39, 40)]
※参考URL
●9.5. fractions ? 有理数 ? Python 2.6ja2 documentation
http://docs.python.jp/2.6/library/fractions.html
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ,露木誠,ルイス・イアン,石本敦夫,小田切篤,保坂翔馬,大谷弘喜
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (30件) を見る