HOME»基本情報技術者試験掲示板»平成24年春期 午後問8についてですが
投稿する

平成24年春期 午後問8についてですが [1185]

 xxxしみんさん(No.1) 
http://www.fe-siken.com/kakomon/24_haru/pm08.html

こちらの設問3について、こちらの問題があります。
「プログラム2,3の処理効率について考えてみる。表1にプログラム2,3の処理量の比較結果を示す。」
と、処理量を数える時はプログラ全体を計算してしまうが実はループの中の処理だけを
計算する必要があります。
ループのみって問題文の中では何も書いてないですがトリッキな質問ですか?
自分は何か漏れていますのでしょうか?
2018.04.13 09:56
あいうさん(No.2) 
最大最小の処理量を調べる際、繰り返し処理以外の場所の処理量は分岐がなく変わりません
よって繰り返し処理の中の処理量だけを計算すれば最大最小の処理量がわかります
2018.04.13 18:20
Universeさん(No.3) 
え?ループの外=全体での処理量じゃないんですか?
プログラム2 の最初 72 と 最大 設問 dをみてみても

◆まず 共通部分であり質問者さんが疑問を呈している
  冒頭 2行の 作業量  1,1,& 末尾の return 部 作業量 2 
の合計  4 は 最小最大 同じ で 「確定」

で次に 
ループ部
 まず 上の4と下の1 は 
  そして If条件分岐部の 「Workの最下位ビットが1」もかならず参照するので 
「4+3+1」=8 * 8回 ループの 64 も「確定」

ちょっとだけ落とし穴で、8回処理(ループ)後に再度 Loop頭にもどるので
(そこで変数LooP=8となったのでループを抜ける)
さらに +4 も 「確定」

ここまでの 確定 : 4+ 64 におまけの + 4 = 72 → 最小値 

どこを見落としたのかな、自分の場合は、初見時は「処理量」の数字を行番号と混同して
ちょっとタイムロスした記憶があります。

そこから
最大値の場合 は すべてが1の場合 は 「count← Count+1」の1 *8 = +8 で
72+8 = 80 → 【最大値 設問d】

だと思うのですが…
ちがうかなー

余談ですが、このアルゴリズムもかなり基礎的なもののようで
ビットマスクで検索すると習作の教材として、自分で構築してみようというプログラマの卵さんたちは、このプログラム2→3のステップをふむみたいですね。
さらに進化したアルゴリズムもあわせて公開されているので、試験後にでものぞいてみると感心されると思いますよ。
と、プログラマ志望ではないので、その辺は他人事?な資格コレクター
2018.04.13 22:28
 xxxしみんさん(No.4) 
あーーー!なるほど〜 そういうことですね!
二人ともありがとうございます!
2018.04.14 14:21
Universeさん(No.5) 
No.3です。一言でまとめると、「No.2さんまちがってますよ」という内容です。

(ただし、アプローチの仕方はむしろ、No2さんの方がより簡潔かつ本質的で、固定部分と分岐可変部分を峻別する手順は、気付かずNo2さんの方法をトレースした内容となっていました。あくまで「H24春午後問8の設問を解く」ためには、No.2さんの解答は、コトバ足らずというか、ちゃんと問8を手にとってお答えになりましたか?というね)

自分の解釈がまちがっている可能性もあるわけで、今回の返答群については、明確にNo2さんか自分どちらかを取捨選択しなくてはいけないのですが。
「二人とも」「そういうことですね」というと、両方採用しているようにみえて、本当に「なるほど」なのかな?と。
といっても、かなり『恣意的な解釈』で書いていて、さらに根拠のない妄想的な解釈で、No1さんは、No2さんが返信する前にとっくに自己解決してたんじゃないか、ぐらいにうけとめていますが。

というのは蛇足で本題
「ビットマスク」というのは間違いでした。
検索ワードとしては、「ビットカウント」でした。
さらに脱線しますが、「ビットカウンタ」と検索すると、似て非なる、しかし、これもFEの守備範囲としてより午後問題をいくつか複合しつつ、同時に基礎的なハードウェア・デジタル回路にヒットするはずです。

せっかくC言語を選択したことだし、手元には自作のPICライターもあるので、試験があけたら、半田のヤニのにおいを堪能しようかな。ラズパイもずっと興味があるんだけど。
KESTER44をロールでもっている頭よりも手を動かしたいannual電子工作er
2018.04.14 16:57
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop