- ベストアンサー
アルゴリズムのフローチャート(ヒストグラム)
0以上10以下の整数を入力として繰り返し受けつけ、階級の幅が3であるようなヒストグラムを出力する。 終了記号は-1とする。 始 ↓ i←0 ↑→→↓ ↑ X[i]←0 ↑ ↓ ↑←←i≧4 NO ↓ ↓YES ↓ 入力:N ↓ ↑→→↓YES ↑ ↓ ↑ N=-1 →YES→出力:X→終 ↑ ↓ ↑ ↓NO ↑ ↓ ↑ N←N/3 ↑ ↓ ↑ X[N]←X[N]+1 ↑ ↓ ↑←←↓ 見にくい図で申し訳ありません。 このようなフローチャートがあるのですが、全体の流れの意味がよくわかりません。 特に後半の「N←N/3」以降はどういった意味なのでしょうか? よろしければ解説をお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
入力Nが0なら,0/3 の結果は0(割切),X[0]に+1する 入力Nが1なら,1/3 の結果は0(切捨),X[0]に+1する 入力Nが2なら,2/3 の結果は0(切捨),X[0]に+1する 入力Nが3なら,3/3 の結果は1(割切),X[1]に+1する 入力Nが4なら,4/3 の結果は1(切捨),X[1]に+1する 入力Nが5なら,5/3 の結果は1(切捨),X[1]に+1する 入力Nが6なら,6/3 の結果は2(割切),X[2]に+1する 入力Nが7なら,7/3 の結果は2(切捨),X[2]に+1する 入力Nが8なら,8/3 の結果は2(切捨),X[2]に+1する 入力Nが9なら,9/3 の結果は3(割切),X[3]に+1する 入力Nが10なら,10/3 の結果は3(切捨),X[3]に+1する ということで,0~10の整数がランダムに繰り返し入力されるたび, その値を0~2,3~5,6~8,9~10という4つの階級(階級の幅は3)にグループ分けして,該当する階級の件数を+1カウントしているわけです。 追伸. 最初に登場するループ中「i←i+1」が書き忘れられています。
その他の回答 (1)
- auty
- ベストアンサー率58% (284/486)
・ 0以上10以下の整数を、階級の幅が3でグループ分けすると [0 1 2] [3 4 5] [6 7 8] [9 10] 0 1 2 3 ---> これをグループNoとすると N←N/3 は、入力Nが属するグループNoを求め、それを新たに、Nに設定しています。 X[N]←X[N]+1は、グループNoの頻度に1を加えています。
お礼
回答ありがとうございます。 見やすいシンプルな解説でとてもわかりやすかったです。 本当に助かりました。 迅速な回答をありがとうございました!
お礼
回答ありがとうございます。 疑問に思っていた点がすっきり解決できました。 書き忘れのご指摘もありがとうございます。 元のフローチャートを確認してみたところ、確かに書き落としていました。 言われなければ気付かなかったはずなので、本当に助かりました。 ひとつひとつ丁寧な解説をありがとうございました!