アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記ページの表1の『処理量』の意味を教えて頂けませんでしょうか?
http://情報処理試験.jp/FE24a-pm/t08.html

(f)の値の計算は容易に済みましたが、
(d)・(e)の解き方が分かりませんので、畏れ入りますが、
御教授を賜われますと、幸甚に存じます

A 回答 (2件)

こんにちは。



「処理量」は「計算量」や「オーダー」とも言いますが、
「ある処理を行うのにかかる時間」と考えるとよいかと思います。
(時間ではなくメモリ使用量などを基準とすることもあります)
ですから、
「処理量の少ないアルゴリズム=処理が早く終わる→効率のいいアルゴリズム」となります。

プログラム2,3の各行左端に数字がありますが、
「1 Work←Data」=WorkにDataを代入するには1秒かかる
「2 return Count」=Countを戻り値として返すには2秒かかる
と考えて処理を追っていくと、プログラム2,3は全部でどれくらいの時間がかかるかが分かります。

Dataに何が入るかでループ回数が変わる(=処理量が変わる)ので、
処理量が最小・最大になるパターンを考えて挑戦してみてください。

この回答への補足

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

補足日時:2012/10/10 05:19
    • good
    • 0

> 「処理量」は「計算量」や「オーダー」とも言いますが (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

この回答への補足

有り難う御座います。

オーダーではない、という事情には直ぐに気付いたのですが、
現時点の私の理解度では、其処迄止まりに過ぎませんでしたので、
質問文の纏め方さえもが中々思い浮かばず、困っておりました。

因みに、未だに私は受験を諦め切れませんので、
直前迄の悪足掻きを続けたいものですから、畏れ入りますが、
下記のページでも御教授を賜れませんでしょうか?
http://okwave.jp/qa/q7741081.html

補足日時:2012/10/10 05:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!