• ベストアンサー

受験志願者らしからぬ質問で畏れ入ります。

下記ページの表1の『処理量』の意味を教えて頂けませんでしょうか? http://情報処理試験.jp/FE24a-pm/t08.html (f)の値の計算は容易に済みましたが、 (d)・(e)の解き方が分かりませんので、畏れ入りますが、 御教授を賜われますと、幸甚に存じます

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

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

> 「処理量」は「計算量」や「オーダー」とも言いますが (ANo.1) この問題では各行の実行量を数え上げていますkら,計算量(オーダ)とは別物です。 http://okwave.jp/qa/q6741047.html の私の回答ANo.1 -------- > プログラム2,3中の各行(の行頭)には, > プログラムの各行を1回実行するときの処理量を示してある。 [プログラム2] 1・Work←Data 1・Count←0 4■Loop: 0, Loop<8, 1 3|▲Workの最下位ビットが1 1||・Count←Count+1 -|▼ 1|・Workを右へ1ビット論理シフトする -■ 2・return Count 「■Loop: 0, Loop<8, 1」は8回分のループだが,前判断型なので,ループ終了時のLoop=8のときに1回追加して判断が実行される点に注意すること。 最大の処理量は,・Count←Count+1 を毎回実行したとき。 =1+1+ 8回ループ×(4+3+1+1) +追加4+2 =80 最小の処理量は,・Count←Count+1 を一度も実行しなかったとき。 =1+1+ 8回ループ×(4+3+【0】+1) +追加4+2 =72 -------- [プログラム3] 1・Work←Data 1・Count←0 2■Workの中に1のビットがある 1|・Count←Count+1 3|・Work←Work & (Work-1) -■ 2・return Count 「■Workの中に1のビットがある」は前判断型なので,ループ回数分に加えてループ終了時に1回追加して判断が実行される点に注意すること。 最大の処理量は,Workの内部8ビットがすべて1のとき。 =1+1+ 8回ループ×(2+1+3) +追加2+2 =54 最小の処理量は,Workの内部8ビットがすべて0のとき。 =1+1+ 【0回ループ】 +追加2+2 =6

SakuraiMisato
質問者

補足

有り難う御座います。 オーダーではない、という事情には直ぐに気付いたのですが、 現時点の私の理解度では、其処迄止まりに過ぎませんでしたので、 質問文の纏め方さえもが中々思い浮かばず、困っておりました。 因みに、未だに私は受験を諦め切れませんので、 直前迄の悪足掻きを続けたいものですから、畏れ入りますが、 下記のページでも御教授を賜れませんでしょうか? http://okwave.jp/qa/q7741081.html

その他の回答 (1)

  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

こんにちは。 「処理量」は「計算量」や「オーダー」とも言いますが、 「ある処理を行うのにかかる時間」と考えるとよいかと思います。 (時間ではなくメモリ使用量などを基準とすることもあります) ですから、 「処理量の少ないアルゴリズム=処理が早く終わる→効率のいいアルゴリズム」となります。 プログラム2,3の各行左端に数字がありますが、 「1 Work←Data」=WorkにDataを代入するには1秒かかる 「2 return Count」=Countを戻り値として返すには2秒かかる と考えて処理を追っていくと、プログラム2,3は全部でどれくらいの時間がかかるかが分かります。 Dataに何が入るかでループ回数が変わる(=処理量が変わる)ので、 処理量が最小・最大になるパターンを考えて挑戦してみてください。

SakuraiMisato
質問者

補足

丁寧な説明を下さいまして、誠に有り難う御座います。

関連するQ&A