データ(各月ごとに5年分)の季節調整を行い,調整結果
をすべて出力するプログラムを作成しなさい
上の問題を授業で出題され、以下のプログラムを作成しましたが、改良すべき点(こうしたらもっと見やすい、コンパクトになる)がありましたら些細なことでいいので指摘・アドバイスをお願いします。
プログラミングは大学で初めて習いましたが、ある程度は得意になりたいと考えています。Colaboratoryを用いています。
また、numpyを用いれば簡単に計算ができるそうですが、今回は使わない形でお願いします。
授業で与えられた情報を記載します
季節調整
季節変動(毎年のパターン)を抽出し調整する。
[季別調整法]
i年目、j月のデータを aij とする。
月平均 Mj
月平均の平均 M
調整のための指数 Sj = Mj / M
調整結果 aij / Sj
加点対象
• 調整後のデータで最大値や最大値となった年月を表示する
• 別の要素数の異なるリストが入力されても計算できる
データ
40.0 37.7 51.8 45.9 45.2 45.4 62.0 40.8 42.1 49.1 51.5 93.4
42.6 39.5 53.4 47.6 47.0 47.5 63.5 42.2 42.9 51.1 51.8 94.7
43.3 39.8 53.6 48.5 48.3 47.5 65.9 42.8 43.7 53.2 52.9 97.0
44.9 42.3 55.0 50.7 48.6 48.9 68.8 43.3 46.2 54.2 54.6 100.5
47.5 42.8 57.7 52.6 51.0 50.9 71.4 45.0 47.3 56.8 56.7 102.7
作成したコード
python
1a1=[40.0, 37.7, 51.8, 45.9, 45.2, 45.4, 62.0, 40.8, 42.1, 49.1, 51.5, 93.4] 2a2=[42.6, 39.5, 53.4, 47.6, 47.0, 47.5, 63.5, 42.2, 42.9, 51.1, 51.8, 94.7] 3a3=[43.3, 39.8, 53.6, 48.5, 48.3, 47.5, 65.9, 42.8, 43.7, 53.2, 52.9, 97.0] 4a4=[44.9, 42.3, 55.0, 50.7, 48.6, 48.9, 68.8, 43.3, 46.2, 54.2, 54.6, 100.5] 5a5=[47.5, 42.8, 57.7, 52.6, 51.0, 50.9, 71.4, 45.0, 47.3, 56.8, 56.7, 102.7] 6a =[a1,a2,a3,a4,a5] 7 8b1=[] 9b2=[] 10b3=[] 11b4=[] 12b5=[] 13b=[b1,b2,b3,b4,b5] 14 15X=0 16S=[] 17Max_list=[] 18 19for num in range(5): 20 X=X+(sum(a[num])) 21X=X/60 22 23for y in range(5): 24 for m in range(12): 25 M=(sum(x[m] for x in a))/5 26 S.append(M/X) 27 b[y].append(round(a[y][m]/S[m],1)) 28 print("b",y+1,"=",b[y]) 29 Max_list.append(max(b[y])) 30 y=y+1 31 32Max_num=(max(Max_list)) 33print("最大値は",max(Max_list)) 34Max_y=Max_list.index(Max_num) 35print(Max_list.index(Max_num)+1,"年目の",b[Max_y].index(Max_num)+1,"ヶ月目に最大値が出ました。") 36
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。