基本情報処理試験H22年秋期午後について

このQ&Aのポイント
  • 基本情報処理試験H22年秋期午後の問題8の設問2の解答が理解できません。何が「つまり」なのかがわかりません。
  • 問題の空欄gについてプログラムをトレースしてもわかりませんでした。
  • 解説書によると、計算式がどうして導き出せるのかがわかりません。
回答を見る
  • ベストアンサー

基本情報処理試験H22年秋期午後について

基本情報処理試験の過去問について質問です。 H22年度秋期の午後試験〔問8〕の設問2の空欄gが 今日一日やったのですが、理解できません。 〔問8〕の空欄g N=7は2進数で0111です。 Rの下位5ビット 01110 1回目 ビット:10 なので 減算 2回目 ビット:11 なので 何もせず 3回目 ビット:11 なので 何もせず 4回目 ビット:01 なので 加算 ここまでは、プログラム2をトレースしてわかります。 解説書によると、以下ですが、何が「つまり」なのか? 計算式がどうして導き出せるのかがわかりませんでした。 ----------------------------------------  つまり次のように計算しています。 M×7=M×(-1+8)=M×(-2^0+2^3)  以上のことから、正解はアです。 -------------------------------------- 過去問URL http://情報処理試験.jp/FE22b-pm/t08.html よろしくお願い致します。

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

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

[プログラム2]は, (4) Rのビット番号1のビットが0 かつ Rのビット番号0のビットが1 (6) Rのビット番号1のビットが1 かつ Rのビット番号0のビットが0 と,ビット列が01または10のときだけ加算または減算している。 つまり,Rのビット列として0が連続したり1が連続したりするときには加減算しないことで,加減算の回数を少なくするアルゴリズムだということ。 ---------------- ビット1が連続している例として, N= +7 = 0111 を挙げると, (2)(3)において Rの下位5ビットに設定されるビット列は 01110 (ちなみにRの上位5ビットにはMを格納して乗算結果を求めるために用いる) 減算するタイミングは 011[10] の一箇所だけであり, 右シフトはまったく行われていない(0回)なので,この減算は-(2の0乗)M すなわち -Mを表す。 加算するタイミングは [01]110 の一箇所だけであり, 右シフトは3回行われているので,この加算は+(2の3乗)M すなわち +8Mを表す。 >  つまり次のように計算しています。 > M×7=M×(-1+8)=M×(-2^0+2^3) ---------------- 念のため,ビット1が連続している別の例として, N= -2 = 1110 を挙げると, (2)(3)において Rの下位5ビットに設定されるビット列は 11100 減算するタイミングは 11[10]0 の一箇所だけであり, 右シフトは1回行われているので,この減算は-(2の1乗)M すなわち -2Mを表す。 加算するタイミングは無い。 よって,この例でも N= -2 の場合の M×N が正しく計算できている。

ttt_xyz
質問者

お礼

早速のご回答ありがとうございます。 また、別例も提示いただき感謝致します。 (7)の減算のタイミングでは、まだ右シフトはまったく行われていない(0回)でしたね。 なので、 この減算は-(2の0乗)M すなわち -Mを表している。 何故「-」なのか? 「2^0」?が疑問でした。 LOOP毎のビットトレースに気を取られおりましたが、 そもそも「加減算」するプログラムでしたね。

関連するQ&A

  • 基本情報処理試験H22年秋期午後について

    基本情報処理試験の過去問について質問です。 H22年度秋期の午後試験〔問8〕のプログラムが読めずに困っています。 問題には二つの値の積を求めるとあるのですが、 プログラム2については何をしているのか理解できません。 数値を代入して追っていくと、積は求める事ができるのですが、内容を理解したいと考えています。 このプログラムを解読できる方、アドバイスお願いします。 過去問URL http://情報処理試験.jp/FE22b-pm/t08.html

  • 基本情報技術者 平成22年秋期 午後問5について

    基本情報技術者過去問題 平成22年秋期 午後問5 ソフトウェア設計の 設問4、5について、解説を読みましたが全く理解できません。 そもそも「図3 棚卸計算処理の流れ」でどのような処理をしているのかのイメージが できません。 どなたか、解説をお願いできませんでしょうか。 ※解説については、下記サイトを参照しました。 http://www.fe-siken.com/kakomon/22_aki/pm05.html

  • 基本情報者試験2006年秋期問13問について

    基本情報者試験2006年秋期問13問について質問があります。 http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_2/2006h18a_fe_am_qs.pdf この問題において 配列の2行目の中身の値は、 初期が上から順に 2、3、4、0、空欄 一回目の操作で 2、3、4、0、3 となり 二回目の操作で 5、3、4、0、3 になり、空欄と0とNULLは同意意義で考えてよろしいのでしょうか? また、一回目の操作と二回目の操作を入れ替えるとなぜデータが壊れてしまうのでしょうか?

  • 基本情報 14年秋期午後問(2)について

    こんにちは、2010年10月の基本情報技術者試験を受験して 午後試験で 50.50点だったものです。 趣味でプログラミングをしていて、 JavaScriptでポーカーを再現し、 同じくJavaScriptで音声は出ませんが、 http://sdin.jp/browser/casino/blackjack/ と同様の動作をするブラックジャックを作るくらいです。 ( CGI, サーバーのことはよくわかりません。) 現在 暇な時間をみて、4月の同試験の受験に向けて勉強しているのですが、 わからないことが出てきましたので、質問させていただきます。 以下のサイトをコピペして、みていただきたいのですが・・・ http://情報処理試験.jp/FE14b-pm/t02.html (1)「問2の設問2は、リストの要素のポインタの値を変えるだけなので、   そのオーダは、テキストの文章の行数に関係なく[定数]である。」 (2)「設問1は、二重ループである挿入ソートの値をずらしていく部分と   同様な処理なので、一重のループであり、オーダは [n] である。   よって、行数やCPの値でオーダは変化する。」 (1)、(2)のような解釈でよいのでしょうか。 もし間違っていたら、どなたか、教えていただけないでしょうか。 よろしくお願いします。

  • H20年秋期基本情報技術者午後問題の問2

    H20年秋期基本情報技術者午後問題の 問2(擬似言語)ですが、 主プログラムPrintOutの 整数型変数  LineC,MarginP,CurrentPで、 1.それぞれに、格納される物が分かりません。 2.もしかして、問題用紙に記載が洩れている?のでしょうか?   或いは、ココを読めば分かる、と、なっているのでしょうか? 詳しい方、教えて下さい! 今月の試験対策で、困っています。

  • 基本情報技術者 午後試験の配点について

    私は次の日曜日に実施される基本情報技術者試験に向けて勉強しているのですが、午前試験は良いのですが午後試験は高得点というわけにはいかず、得意分野と高配点の問8と問9に焦点を絞り、残った時間で少しずつ得点しようと考えております。 そこで疑問に思ったのですが、午後試験の配点は、問ごとに各12点、20点としか記載されていないのです。それでは、小問ごとの配点はどうなっているのでしょうか? 例えば、問1には設問1.2.・・・とあります。さらに設問1のa,b,設問2のc,d,などとなっています。つまり、私が知りたいのはaの配点、bの配点、cの配点、dの配点・・・というものです。 他にも、複数回答は完答かどうか、など。 分からないと過去問をやっても点数が分からないと思うのですが・・・・。 どなたかご存知の方がいらっしゃいましたら、どうか教えて頂きたいです。

  • 基本情報技術者試験午後について

    基本情報は今年の秋期で6回目のチャレンジとなります。これまでjavaを選択していましたが、今回はCASLで初挑戦します。教えていただきたいのは、CASLのトレースについてです。問題にある例などのデータなでトレースし、回答を考えていくのが正しいとおもいますが、最後までトレースするととても時間がたりません。ある程度わかったところでトレースを中止し、これまでのトレース結果から推測?し解答をすると、なかなか合わないという感じで、今後の学習のやり方で戸惑っています。 トレース速度を上げ、全てやりきってから解答すべきなのか、穴埋めがわかればよいわけなので、直感的な感覚を磨き穴埋めの数ラインから解答するコツをを習得すべきなのか、どちらが合格に向けてよい学習方法か教えていただきたいです。なお、何故か初級シスアドと情報セキュアドはどちらも一発合格しております。

  • 基本情報処理平成13年度秋期JAVA午後問8について

    早速質問させていただきます。 基本情報処理平成13年度秋期JAVA午後問8のTestPantsプログラムについてですが、 abstract class Pants内のpublic String toStringメソッドがどのタイミングで呼び出されるのかが解りません。 for (int i = 0; i < pants.length; i++) { System.out.println(pants[i]); } 上記のSystem.out.println(pants[i]);を実行すると勝手にtoStringが呼ばれるのでしょうか? ■平成13年度秋期JAVA午後問8ソース http://www.bohyoh.com/ITEE/Java/2001B/J2001B08.html よろしくお願い致します。

  • 基本情報技術者試験について

    基本情報技術者試験について こんにちは。 五日後の基本情報技術者試験を受ける専門学生です。 今回で三回目になります。 一応、専門学校ではITの基礎を一通り習い午前免除制度の試験は去年の12月に取りましたので前回と今回は午後試験のみとなりました。前回は就職活動と重なり、就職活動メインでしたので基本情報技術者試験の方の勉強はおろそかとなり42点で不合格となりました。 ちなみに一回目は午前免除試験に落ちてしまったため午前からやり、午前が56.25点/100点で午後が37点でした... 専門は2年コースで午前免除も今年で切れますので今回が最後の試験になります。 ちなみに就職先はITの会社に決まりましたのでもし落ちたら働きながら勉強しなきゃと言うことでとても大変だなぁと思い、今回で必ず取りたいと思っています。 そして夏休み明けの9月から今に至るまで基本情報技術者試験の午後対策をやっていますが、どうしてもアルゴリズムが足を引っ張っています... 今まで学校では過去問をやってきているのですが... 平成23年度春期・・・51点 平成23年度秋期・・・55点 平成24年度春期・・・73点 平成24年度秋期・・・45点 平成25年度春期・・・55点 平成25年度秋期・・・57点 平成26年度春期・・・51点 平成26年度秋期・・・56点 平成27年度秋期・・・62点 iTEC業者模試・・・・45点 TAC業者模試・・・・48点 このようになかなか合格点に届きません。なかなか合格できるか不安です。 先生はアルゴリズムより、問1~7の選択問題と問13の表計算に力を入れて学習してそこのところを点数伸ばして行くように。と言っていましたが問題によってはなかなか点数が伸びない時があります。 最近はそのことに従ってアルゴリズム以外に力を入れて学習してきました。 確かにアルゴリズムは運がよく3問くらい当たっている時は合格点行ってる時もありました。ですが運が悪いと全滅の時もあり、合格点に届かない時もあります... 残り5日間なのですがアルゴリズムは捨てて他の問題で点数を稼ぐべきでしょうか? ちなみに選択問題は問2・5・6・7・13を選んでいます。(問1セキュリティと問8アルゴリズムは必須) ついでですが、基本情報技術者試験に合格した皆さんはどんな学習方法をしていたのか知りたいです。

  • 基本情報技術者 午後 質問 問題 解説

    試験直前で申し訳ないのですが、よろしくお願いいたします。 平成24年春 問3 説問4 なぜ正解がウなのか?他が駄目な理由が分からない。 平成24年春 問8 説問3 プログラム2,3の処理量とworkの意味。 平成23年秋 問5 設問1 図3の右下 空欄d-0‥の関係式が理解不明。   ※どうしならば1対1の関係になるのではないか?  設問2 解説で図2を参考にしているが、どのように比べているのか?