• ベストアンサー

シグマの計算をプログラムで

少し分かりにくいですが、、、 (1≦j≦N+1)の下で、 Z=Σ(k=1~N)Σ(i=1~k-1)A[i]+Σ(i=1~j-1)A[i] をプログラム風に書くとどうなるか教えてください。(C又はできたらFortlanで) あと、Σ(i=1~0)A[i]はどうなるのですか?0ですか? 以上2点お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

Cですと、Σはforループに書き換えるのが普通です。 Z=0; for(k=1; k<=N; k++){  for(i=1; i<=k-1; i++){   Z=Z+A[i];  } } for(i=1; i<=j-1; i++){  Z=Z+A[i]; } のような事ですが、 Z=Σ(k=1~N)Σ(i=1~k-1)A[i]+Σ(i=1~※j-1)A[i] ※のjが未定義なので、計算できません。 式が誤っているのでは? FORTRANの場合にも、forがDOに変わるだけで、基本的な考え方は同じです。 DO K = 1, N  ~ END DO -- > あと、Σ(i=1~0)A[i]はどうなるのですか?0ですか? こちらは式を書いた人がどういう風に定義しているかによると思います。 「Σ(i=0~1)A[i]と同じで良いですか?」と確認するしかないような。 つまり、数学的な意味合いでのΣなのか、プログラム的な意味合いなのか。

kiki2142
質問者

お礼

ご回答ありがとうございました。 >Z=Σ(k=1~N)Σ(i=1~k-1)A[i]+Σ(i=1~※j-1)A[i] ※のjが未定義なので、計算できません。 jは1≦j≦N+1の範囲なのでこれで解決できると思います。 Σ(i=1~0)A[i]については特に定義はありませんでした。もしΣ(i=0~1)A[i]と同じなら違う書き方がありますよねぇ。 ここの部分は少し自分で考えてみることにします。

関連するQ&A

専門家に質問してみよう