ソフトウェア開発'04/11は,斎藤末広氏
http://www.mirai.ne.jp/~suehiro/ が出されている宿題を再編集したものです。


------------------------------------------------------------------------
041101
■キーワード■ 論理演算

■解答■
  基本情報技術者午前平成16年秋問05

 ウ P(A ∩ B) = P(A)・P(B)

> ア:和事象の確率は各事象の積では表せない
> イ:事象 A と事象 B が排反であるときに成立する
> エ:積事象の確率は各事象の和では表せない

 どうもありがとうございました。

> P(A ∪ B) : 事象 A または 事象 B が発生する確率
> = 1 − (事象 A も 事象 B も発生しない確率)
> = 1 − ( 1 − P(A) )( 1 − P(B) )
> 
> P(A ∩ B) : 事象 A と 事象 B が同時に発生する確率
> = P(A)・P(B)

 どうもありがとうございました。

> 例えば、2つの集合A, Bについて、
> Aを1桁の奇数の集まり A={ 1, 3, 5, 7, 9 }
> Bを3で割り切れる1桁の数全体の集まり B={ 0, 3, 6, 9 }
> とします。
> A∪B={ 0, 1, 3, 5, 6, 7, 9 }
> A∩B={ 3, 9 }
> です。
> 次に、1桁の数全体の集まりから
> A:1桁の奇数を取り出す確立=5/10
> B:3で割り切れる1桁の数を取り出す確立=4/10
> とします。
> A∪B=7/10≠5/10+4/10=9/10
> A∩B=2/10=(5/10)×(4/10)=20/100=2/10

 どうもありがとうございました。


------------------------------------------------------------------------
041102
■キーワード■ 計算問題:CPU速度

■解答■
  基本情報技術者午前平成16年秋問19
  類題:初級システムアドミニストレータ午前平成12年春問31

 エ 125,000

> このCPUは、1クロックで何命令実行できるか?
> 1 / 0.8 = 1.25 
> このCPUは、1秒間に1Gクロック実行できるから
> 1.25 × 10^9 = 125000 × 10^4 = 125000 万命令/1秒
> よって、答えはエ

 どうもありがとうございました。

> ・「1GHz で動作する CPU」から、1クロック当たりの時間を求める。
>   → 1/10^9[秒/クロック] …(1)
> ・「1 命令を平均 0.8 クロックで実行」から、1命令当たり時間を求める。
>   →0.8 * 1/10^9[秒/命令] …(2)
>   従って、1 秒間に実行できる命令数は、(2)の逆数になる。
>   10^9/0.8 = 10^4 * 10^5/0.8 = 125,000

 どうもありがとうございました。

> このCPUは1クロックで1.25命令実行できる。
> 1GHz=1,000,000,000クロック/秒なので
> 1,000,000,000Hz×1.25命令=1,250,000,000命令
>                                        =125,000万命令

 どうもありがとうございました。


------------------------------------------------------------------------
041104
■キーワード■ インスペクタ

■解答■
  基本情報技術者午前平成16年秋問47

 ア デバック時にデータ構造の内容を確認するためのツールをインスペクタと
  いう。

> ○ア:実行時やデバック時にオブジェクトの内容等を確認する
> ×イ:トレーサはプログラムの実行を通してプログラムの誤り発見等に利用する
> ×ウ:シュミレータは模倣するツール
> ×エ:エディタの説明 ブラウザはWebを閲覧するもの
>
> 10/28の問題と同じですよね?

 出題ミスをしました。申し訳ありませんでした。

> イ)ブラウザの説明
> ウ)トレーサの説明
> エ)エディタの説明

 どうもありがとうございました。

> 「インスペクタを使うことによってオブジェクトの中身を見ることができます。・
> ・・(以下略)」
> 下記HPより引用しました。
> http://www.sel.cs.hiroshima-cu.ac.jp/~sato/stx/tools/misc/TOP.html

 どうもありがとうございました。

>http://www.shunzei.com/lecture/words/aa.html より
>インスペクタ(inspector)
>
>デバッグ時にデータ構造の内容を確認するためのツール
>インスペクタ(inspector)とは,プログラミングやデバックを行うときに,
>各オブジェクトのデータ構造や値を確認するためのツールです。
>VBやDelphiにあるオブジェクトのプロパティを直接入力できるウィンドウが
>インスペクタです

 どうもありがとうございました。

> 初めて(melma)ブログを拝見しました(遅い!)
> 便利ですね。
> ちなみに
> http://blog.melma.com/00107317/20041029112203
> を参照。(参照というより答えが載っていた。。。)

 こちらは,宿題メールを出すと自動的に保存されるものです。私のブログは,
ジャンジャン日記
http://d.hatena.ne.jp/suehiro3721p/
宿題仲間ブログ
http://a.hatena.ne.jp/topstone/simple


------------------------------------------------------------------------
041105
■キーワード■ ドライバ

■解答■
  基本情報技術者午前平成16年秋問52

 エ ドライバはテスト対象モジュールに引数を渡して呼び出す。

> ドライバ:被テストモジュールにデータを渡して起動する仮の上位モジュール
> スタブ:被テストモジュールよりデータを受け取り、その応答を被テストモジュー
> ル
> に返す仮の開モジュール
>   ドライバ
>    ↑↓
> テストモジュール
>    ↑↓
>     スタブ

 どうもありがとうございました。

>  モジュールテストでの位置付け:
>「ドライバ>対象モジュール>スタブ」
> (上位)            (下位)
> という風に覚えても良いでしょうか。

 それでいいです。

> 下記HPの「【図1.1.2】スタブ・モジュールとドライバ・モジュール」
> にスタブとドライバの機能の模式図がありました。
> http://www.mikamama.com/CppUnitBook/draft/sec1-1.html

 どうもありがとうございました。

> 結合テスト
> http://allabout.co.jp/career/swengineer/closeup/CU20030216A/index4.htm

 どうもありがとうございました。上のURLでの説明は,単体テストの話です。
ドライバ,スタブを利用してもテストは単体テストです。結合テストでは,それ
らの本物があるのでドライバやスタブは必要ありません。

> スタブ:プログラムモジュールの結合テスト時に用いる、ダミーの下位モジュ
>  ール。モジュールを実行してテストするには、それが起動する下位モジュー
>  ルが開発されていないとリンケージエディットが行えず、機械語のプログラ
>  ムが作成できない。そのため、リンケージエディットができるだけの処理を 
>  記述したダミーのモジュールが必要となる。
> ドライバ:プログラムモジュールのテスト時に用いる。ダミーの上位モジュー
>  ル。モジュールを実行してテストするには、それを起動する上位モジュール
>  が開発されていないとリンケージエディットができず、機械語のプログラ
>  ムが作成できない。そのため下位モジュールを起動する距離だけを記述した
>  ダミーのモジュールが必要となる。
> (木村宏一 シスアド合格用語事典 より)

 どうもありがとうございました。

> この問題は、試験で迷った問題です。
> 答えはエのようですが、”引数を渡して呼び出す。”が引っかかりました。
> 引数を渡しても渡さなくても、テスト対象モジュールを呼び出すものが
> ドライバではないでしょうか?

 ドライバは,テスト対象モジュールが引数を必要なら引数を渡します。必要な
ければ,引数を渡しません。


------------------------------------------------------------------------
041108
■キーワード■ 情報バリアフリー

■解答■ 基本情報処理技術者午前平成16年秋問79

 ア 音声や手書き文字などの限られた手段でしか入力できない場合でも,情報
  機器を活用することができる環境

> このページのリンク先(郵政省など)をみると
> http://www.pref.hokkaido.jp/hfukusi/hf-thksi/chihuku/itbarrierfree/
> 答えはアなのでしょうか?
> ちなみに、本番での私のこたえはエ でした。

 どうもありがとうございました。

> 高齢者や身体等にハンディ・キャップがある人には、社会参加に際して一般人
> にはないような障壁(バリア)があり、これを取り除くことをバリアフリーと
> いいます。「情報バリアフリー」とは情報通信分野でも一般人と同様に情報通
> 信を利活用できるようにすることです。
> 
> 下記HPより一部引用しました。
> http://www.ttb.go.jp/bf/

 どうもありがとうございました。

> 「誰でも(情報を)活用できる環境」@総務省
> http://tinyurl.com/3qqu5

 どうもありがとうございました。

> 規格もあるようです。
> 参考:情報通信研究機構NICT バリアフリー規格
> http://www2.nict.go.jp/ts/v862/105/jis/index.html

 どうもありがとうございました。

> 私には聴覚に障害がある為、バリアフリーという言葉は以前から知っていました。
> しかし一般的にはあまり知られて
> いないのかもしれませんね。現在はユニバーサルデザインという風に発展し、
> 障害者や高齢者のみならず、誰にも普遍的にやさしい商品やサービス、例えば
> シャンプーやリンスの容器の側面に目をつぶって触っただけでも区別できるよ
> うな凹凸をつける等が身近なものとしてあります。「バリアフリー」が一般的
> に難問でなくなる日が来ることを願います。

 いろいろな場面で,バリアフリー/ユニバーサルデザインが普及してほしいです
よね。


------------------------------------------------------------------------
041109
■キーワード■ ガーベジコレクション

■解答■ 基本情報処理技術者午前平成16年秋問32

 ア ガーベジコレクション

> ○ア ガーベジコレクション:主記憶のヒープ領域に割当てられているが,すで
>    に使われていない領域(ごみ:garbage)を解放して,再び利用できるよう
>    にすること。
> ×イ スタック:最後に格納されたデータが最初に取り出されるリスト。
> ×ウ ヒープ:完全二分木を配列で実現するデータ構造。
> ×エ フラグメンテーション:主記憶の中にできる使いものにならない細分化さ
>    れた領域。
> 
> よって,正解はア。
> 
> 引用文献:福嶋宏訓(2003),情報処理用語辞典(新星出版社)
http //www.amazon.co.jp/exec/obidos/ASIN/4405030383/suehirospage-22

 どうもありがとうございました。

> 【ガーベジコレクション】
>  OSのメモリ管理機能の一つ。プログラムが使用しなくなったメモ
> リ領域や、プログラム間の隙間のメモリ領域を集めて、連続した利
> 用可能なメモリ領域を増やす技術。これが不完全なOSは次第に利用
> 可能なメモリが減ってゆくため、一定期間ごとに再起動を強いられ
> ることになる。Java言語の実行環境(JVM)は自身がガーベジコレクシ
> ョン機能を持っており、Javaプログラマがメモリ管理に気を使わな
> くてもいいようにしている。
> 
> http://e-words.jp/w/GC.html引用

 どうもありがとうございました。

> 最初、「デフラグのこと?」と思い、エを選びそうになりました。
> キチンと読まないと!

 デフラグは対象がディスクの断片化
 再編成は,ファイルの中身の整理
 ガーベジコレクションは,一つのプログラム内が占有している主記憶の整理

>  イ スタック 積み重ねること
>  ウ ヒープ  かたまり 積み重ね
>  エ フラグメンテーション 断片化

 どうもありがとうございました。
 

------------------------------------------------------------------------
041110
■キーワード■ データの正規化

■解答■ 基本情報処理技術者午前平成16年秋問67

 エ ファイルやデータベースの論理的なデータ構造を設計する際の技法であり,
  データの矛盾や重複を排除することを目的とする。

> 正規化:
> データの冗長性を少なくして,関連性の強いデータ項目(属性)郡をまとめて,
> 一事
> 実一箇所(1 fact in 1 place)になるようにすること
> 参考:ジャンセン先生のサイト | データベースの正規化
> http://www.mirai.ne.jp/~suehiro/am/kihonyougo/normal.htm
> 
> データの重複をなくすことにより,データの管理を容易にしたり,データを多様
> な目
> 的に用いるのに有効な方法で,データベースの構築の基本になる技法です。
> 参考:データの正規化(木暮さんサイト)
> http://www.kogures.com/hitoshi/webtext/db-seikika/index.html
> 
> 
> ×ア:信頼性・格納効率はDBMSに関すること
> ×イ:運用管理を容易にする=レコードを短くするではない
> ×ウ:アクセス効率はインデックスに関する事
>    データの冗長性はDBMSやハードウェアを含めたシステム全体の事
> ○エ:上記より「矛盾や重複を管理する」

 どうもありがとうございました。

> 正規化(normalization)とは,実世界の事象や情報を,データベースのうえで効
>   率的に管理するために形式化(モデル化)することや,その手順自体をいいま
>   す。つまり,効率的なデータベースを設計するための方法論やその基準であ
>   り,これに従えば誰もが効率的なデータベースを設計できる,便利な指針で
>   あるともいえます。
>   よって,正規化を知っているか否かは,データベースの設計において非常に
>   大きく影響します。これはつまり,行ったことがない場所に対して,地図や
>   ナビゲーションを携えて向かうのと,何も持たずに向かうほどの違いがある
>   のです。
> 
> よって,正解はエ。
> 
> 引用文献:
> 図解でわかるデータベースのすべて, 小泉 修(1999), 日本実業出版社, P.149

 どうもありがとうございました。

> ↓図入りで説明されていました。
> http://www.rfs.jp/sitebuilder/sql/01/06.html

 どうもありがとうございました。
 

------------------------------------------------------------------------
041111
■キーワード■ インベントリ収集

■解答■ 基本情報処理技術者午前平成16年秋問60

 ア インベントリ収集

> インベントリ:
> ハードウエアとソフトウエア個々の情報のことで、クライアントPCであればOSの種
> 類とバージョン、CPUとそのスピード、物理メモリと利用可能メモリなど、ソフトウエ
> アであれば製品名とバージョン、ファイルサイズ、ファイル更新日などのことであ
> る。
> 参考:キーマンズネット/資産管理ツール
> http://www.keyman.or.jp/search/30000547_2.html

 どうもありがとうございました。

> インベントリ:在庫品や目録の意味で、LAN上のクライアントが持っている
>  データを一覧にしたもの。ネットワーク管理ソフトでは、これを使って
>  データの一元管理が行える。
> (エクスメディア 『パソコン用語事典』より)

 どうもありがとうございました。

> PCインベントリ収集
>  PCのハードウェア情報やインストールソフトウェアの情報をスキャンし収集し
> て、その目録を作ることを言います。
> http://www.asset-base.jp/question.html

 どうもありがとうございました。

> 運用管理ソフトでは、「インベントリ」収集機能があり、クライアントPCにインス
> トールされているソフトウェアのライセンスの管理などが行える。
> 
> 富士通 Systemwalker
>     http://systemwalker.fujitsu.com/jp/
> NEC  WebSAM
>     http://www.sw.nec.co.jp/middle/WebSAM/index.html
> 日立  JP1
>     http://www.hitachi.co.jp/Prod/comp/soft1/jp1/

 どうもありがとうございました。

> 初歩的な質問ですが、「インベントリ」を収集する目的は
> ・資産情報を一元管理する ということだそうですが、
> 具体的には
> ・セキュリティ対策(ウィルスソフト定義ファイルの配信なども)
> ・セキュリティパッチ
> ・OfficeやIEなどのソフトのバージョンUP
> などを一元管理、または同時配信し
> ・運用コストを下げる 
> 効果を期待するもの ということでよいのでしょうか?
> なんとなくイメージとしてはわかりますが、
> 誰かに簡潔に説明する場合、どういう言葉で説明すると
> ベストなのだろうか、と考えています。

 それでいいでしょう。あと,利用者の行為を管理するという目的もあります。
 

------------------------------------------------------------------------
041112
■キーワード■ 計算問題:伝送速度

■解答■ 基本情報処理技術者午前平成16年秋問64

 ウ 9,600

> 3600件/時間=1件/秒であり、1件あたりのデータ量は400バイトなので
> これをビットに換算すると400バイト×8ビット=3200ビットになる
> 
> さらに伝送効率が60%なので、3200ビット÷0.6=5333.3・・・・・となるので
> これを満たすのは、ウの9,600ビット/秒である。

 どうもありがとうございました。

> 要件を満足する回線速度を a bps とすると,
>     a * ( 60 / 100 ) = ( 400 * 8 * 3600 ) / ( 1 * 60 * 60 )
>     a = 3200 * 100 / 60
> a は約 5333 bpsとなり,選択肢内で,これ以上の回線速度は,9,600 bps 。
> よって,正解はウ。

 どうもありがとうございました。


------------------------------------------------------------------------
041115
■キーワード■ 計算問題:基数変換

■解答■
  基本情報技術者午前平成16年秋問01

 エ 73/512

> ( 0.248 )16 = ( 2 / 16 + 4 / 16^2 + 8 / 16^3 )10
>       = (( 2 * 16^2 + 4 * 16 + 8 ) / 16^3 )10
>       = (( 2 * 2^8 + 4 * 2^4 + 8 ) / 2^12 )10
>       = (( 2^9 + 2^6 + 2^3 ) / 2^12 )10
>       = (( 2^6 + 2^3 + 1 ) / 2^9 )10
>       = (( 64 + 8 + 1 ) / 512 )10
>       = ( 73 / 512 )10
> よって,正解はエ。

 どうもありがとうございました。

> 16進数(0.248)=10進数(2/16+4/256+8/4096)
> 1/8+1/64+1/512=73/512

 どうもありがとうございました。

> 0.248を2進数に変換→0000 . 0010 0100 1000
> これは2^{-3}+2^{-6}+2^{-9}。
> よってすべて足すと73/512。

 どうもありがとうございました。

 16進数の問題は,まず2進数に直す
 (0.248) = (0.0010 0100 1000)
 次ぎに,シフトする(9左シフト,2^9 = 512 倍)
 (1001001)2 = 64 + 8 + 1 = 73

 よって,73/512
 ポイントは,16進と8進の問題は,2進数&シフト
 

------------------------------------------------------------------------
041116
■キーワード■

■解答■
  基本情報技術者午前平成16年秋問02

  ┌───────────┬───────┐
  │   [  a  ]     │  [  b  ]  │
┌─┼───────────┼───────┤
│イ│n AND 000F 16(*)    │右に 4 ビット │
└─┴───────────┴───────┘

> 下位 4 けたを取り出すには,000F 16(*) とAND をとる
> 取り出した下位 4 けたを追い出すには,右にシフトする

 どうもありがとうございました。

> n= 1010 1011 1100 1101 とする。
> [1回目]
> (1)
> 1010 1011 1100 1101
> 0000 0000 0000 1111 and
> -------------------------------
> 0000 0000 0000 1101
> (2)
> XをスタックにPUSH
> 0000 0000 0000 1101 → X
> (3)
> nを右に4ビットシフト
> 0000 1010 1011 1100
> [2回目]
> 0000 1010 1011 1100
> 0000 0000 0000 1111 and
> --------------------
> 0000 0000 0000 1100
> (2)
> XをスタックにPUSH
> 0000 0000 0000 1100 → X
> (3)
> nを右に4ビットシフト
> 0000 0000 1010 1011
> 
> 以下4回目まで繰り返し
> 
> よってイ

 どうもありがとうございました。

> スタック:コンピュータにおける基本的なデータ構造の1つ。
>      最後に入れたデータが最初に取り出されるようなデータ構造。
> @ITより(http://www.atmarkit.co.jp/icd/root/56/5783656.html)

 どうもありがとうございました。

> この手の問題が苦手です。解説を読めば理解できると思いますが
> 解き方のコツでもあれば教えてください。

 図や数式を綺麗に,正しく書いて考えるといいですよ。
 10円のものを3個購入して,さらに,500円のものを購入するといくらか?
を
 3*10 = 300+500 = 530
のように式を書く人がときどきいますが,

 10*3=300    ← 10円が3個 残る単位の数字を前にかく
 300 + 500 = 800 ← 等号は正しく使う。× 3*10 = 300+500 = 530
と書きましょう。
 あと,2進数は,4桁ごと区切ってかく。
 × 11111011
 ○ 1111 1011


------------------------------------------------------------------------
041117
■キーワード■ 計算問題:シフト演算

■解答■
  基本情報技術者午前平成16年秋問03

 ウ 3.FB70

> >0.FEDC を2進数になおすと
>  0.1111 1110 1101 1100 なので
> 
>  0.1111 1110 1101 1100
>  0.1111 1110 1101 1100
>  0.1111 1110 1101 1100
> +0.1111 1110 1101 1100
> ー---------------------
> 11.1111 1011 0111 0000 となり、16進数になおすと
> 3.FB70 となるので
> 答えはウ だと思います。
> ところで、もっと簡単な方法がありますでしょうか?

 あります。↓

> 0.FEDC[hex]=0. 1111 1110 1101 1100[bin]
> 左へ2ビット シフト(:4倍) → 0011. 1111 1011 0111 0000[bin]
> 0011. 1111 1011 0111[bin]=3.FB70

 どうもありがとうございました。
 2進数にする,シフトするという鉄則通りの計算でした。
 試験のときは,解答群をみて左の4ビットぐらいを計算した十分と判断して
下さい。


------------------------------------------------------------------------
041118
■キーワード■ 浮動小数点表示

■解答■
  基本情報技術者午前平成16年秋問04

 エ 正規化

> 正規化
> 最上位が必ず0以外になる処理をすること。
> 例)
> 2進数(0.0101)を2進数(1.01 * 2^-2)と
> 表現すること。

 どうもありがとうございました。

> ×ア 切り上げ:四捨五入は、0 〜 4 までは切り捨て、5 〜 9 は切り上げ。
> ×イ 切捨て:四捨五入は、0 〜 4 までは切り捨て、5 〜 9 は切り上げ。
> ×ウ けた上げ:ある桁での加算や乗算が,1 桁で表現できる数を越えるとき,
>      上の桁に 1 を加えること。
> ○エ 正規化:仮数をあらかじめ決められた範囲に納まるように仮数部と指数部
>      を調整すること。

 どうもありがとうございました。

> 浮動小数点数は、その性質上1つの値を複数の表現で表すことができる。しかし、表
> 現形式の違う浮動小数点数が混在していると、比較などの処理を行う際に支障をき
> たすため、浮動小数点数を表現する際の規格がメーカーや業界団体によって決めら
> れている。この規格に沿って浮動小数点数の表現を(実際の値を変えないまま)調整
> するのが浮動小数点数の正規化である。・・・(中略)・・・最もよく使われている
> 規格がIEEE作成のもので、浮動小数点数を2進数として扱い、仮数部(各桁の値の並
> びをあらわす)の値について小数点以上が1桁(10進数に直すと1以上2未満)になるよ
> う調整し、それに合わせて指数部(小数点の位置をあらわす)も調整するというもの
> である。
> 
> 下記HPより一部引用しました。
> http://e-words.jp/w/E6ADA3E8A68FE58C96.html

 どうもありがとうございました。

> 浮動小数点数
> http://www.pat.hi-ho.ne.jp/ochiyasu/jouhou/2syu/jou-2-fudous.htm

 どうもありがとうございました。
 

------------------------------------------------------------------------
041119
■キーワード■ 計算問題:期待値

■解答■
  基本情報技術者午前平成16年秋問06

 ア 5/3

> 期待値
> 結果として起こる可能性のある数値について、その起こる確率を重みとして
> 掛けた数を足し合わせた数値
>
> 1〜6の目が出る確率はそれぞれ1/6で、
> 1〜4までが得点となるので、
> 1×1/6 + 2×1/6 + 3×1/6 + 4×1/6 + 0×1/6 + 0×1/6 = 5/3
>
> 参考:
> http://www.geocities.co.jp/Technopolis-Mars/5427/math/fe_probab10.html

 どうもありがとうございました。

> 得点の全バリエーションをさいころの面の数で割ると
> (1+2+3+4+0+0)÷6=10/6=5/3
> よって答はア。

 どうもありがとうございました。

> 1が出る確率は1/6で1
> 2が出る確率は1/6で2
>     :
>     :
> それぞれは重複しないので加算すると、
> 1/6(1+2+3+4)=5/3
> と考えました。

 どうもありがとうございました。
 

------------------------------------------------------------------------
041122
■キーワード■ ビット演算,論理演算

■解答■
  基本情報技術者午前平成16年秋問08

 ウ 16 進数 FC と排他的論理和をとる。

> テストデータ (1111 1111)2 を考えると,
> 演算後のデータは (0000 0011)2 となる。
>  ア (03)16 = (0000 0011)2 と
>               (1111 1111)2 の排他的論理和は
>               (1111 1100)2 ← ×
>  イ (03)16 = (0000 0011)2 と
>               (1111 1111)2 の論理和は
>               (1111 1111)2 ← ×
>  ウ (FC)16 = (1111 1100)2 と
>               (1111 1111)2 の排他的論理和は
>               (0000 0011)2 ← ○
>  オ (FC)16 = (1111 1100)2 と
>               (1111 1111)2 の論理和は
>               (1111 1111)2 ← ×
>  よって,正解はウ。
> 
> 参考文献:[情報処理教科書],基本情報技術者(H15,秋期,翔泳社),P.14

 どうもありがとうございました。

> 排他的論理和(xor)は、a, b のどちらか一方だけが 1 であるときにだけ
> a xor b = 1  となる。
> 全ての組み合わせは、 0 xor 0 = 0,1 xor 0 = 1,0 xor 1 = 1,1 xor 1 = 0 
となる。
> 下位2ビットは元のデータを変化させないので"00"、上位6ビットは反転するので
> "111111"とする。
> 例
> 1010 1010
> 1111 1100 …FC
> --------------
> 0101 0110
> 参考:
> http://www.kyoto-su.ac.jp/~yamada/ap/xor.html

 どうもありがとうございました。

> 排他的論理和(XOR)とは、以下の演算です。
> 
> 1 XOR 0 → 1
> 1 XOR 1 → 0
> 0 XOR 0 → 0
> 0 XOR 1 → 1
> 
> 論理演算は、AND, OR, NOT の組み合わせで表せます。
> ちなみに XOR は、以下で表せます。
> X XOR Y = (X AND (NOT Y)) OR ((NOT X) AND Y)

 どうもありがとうございました。
 

------------------------------------------------------------------------
041124
■キーワード■ 論理演算

■解答■
  基本情報技術者午前平成16年秋問09

 ウ Y・Z

>        _
> X・Y・Z + X・Y・Zの共通部分"Y・Z"をまとめると
>    _
> (X+X)Y・Z
>   _
> X+X=1だから式から消去し、答はY・Zになる。

 どうもありがとうございました。

> ベン図を描くと,
>          _
>     X・Y・Z + X・Y・Z = Y・Z
> と分かる。
> よって,正解はウ。

 どうもありがとうございました。

> X, Y, Z=1, 1, 1 または X, Y, Z=0, 1, 1
> → Y, Z=1, 1 であれば X=0, 1のどちらでも良い
> → Y, Z=1, 1
> 
> X && Y && Z || !X && Y && Z
> =(Y && Z) && (X || !X)
> =Y && Z

 どうもありがとうございました。
 

------------------------------------------------------------------------
041125
■キーワード■ 計算問題:チェックディジット

■解答■
  基本情報技術者午前平成16年秋問10

 ウ 4

> (N1× 1 + N2× 2 + N3× 3 + N4× 4)を10で除算した際に
> 余りが4( = C )になるN1の値を選ぶ。
> 
>   (N1× 1 + N2× 2 + N3× 3 + N4× 4)
> =(N1 + 7×2 + 6×3 + 2×4) 
> =(N1 + 40)
> 
> (N1 + 40)より、N1の値が10で除算した際の余りとなるので
> N1 = C = 4
> 
> 正解 ウ
> 
> ・調べたこと
> チェックディジットについて
> 基本情報技術者スーパー合格本 午前2004年秋 P269


------------------------------------------------------------------------
041126
■キーワード■ 状態遷移表

■解答■
  基本情報技術者午前平成16年秋問11

 ウ 12.2

> 各値の状態遷移を見ると、
> 
> (ア) a→c→b→b→b→b
> (イ) a→c→b
> (ウ) a→b→b→d→e
> (エ) a→b→d→a
> 
> となるので、不合格になるのは(ウ)。

 どうもありがとうございました。

> 状態を a、b、c、d、e、検査する文字を「」記号で表すと、
> ア a -「+」→ c -「0」→ b -「0」→ b -「1」→ b -「0」→ b
> イ a -「-」→ c -「1」→ b
> ウ a -「1」→ b -「2」→ b -「.」→ d -「2」→ e
> エ a -「9」→ b -「△」→ a
> 状態 e を取るのは、入力文字列 「12.2」 の最終文字の検査時である。
> よって、正解はウ。
> 
> 参照サイト(状態遷移図があります)
> http://mt-net.vis.ne.jp/ADFE_mail/0343.htm

 どうもありがとうございました。

> 順番に当てはめて考えました。
>  ア + 0010
>	a:+=符号なのでcに遷移
> 	c:0=数字なのでbに遷移
> 	b:0=数字なのでbに遷移
> 	b:1=数字なのでbに遷移
> 	b:0=数字なのでbに遷移 →合格
>
>  イ - 1
> 	a:-=符号なのでcに遷移
> 	c:1=数字なのでbに遷移 →合格
>
>  ウ 12.2
> 	a:1=数字なのでbに遷移
> 	b:2=数字なのでbに遷移
> 	b:.=小数点なのでdに遷移
> 	d:2=数字なのでeに遷移 →不合格
>
>  エ 9.△
> 	a:9=数字なのでbに遷移
> 	b:.=小数点なのでdに遷移
>	d:△=空白なのでaに遷移 →合格

 どうもありがとうございました。


------------------------------------------------------------------------
041129
■キーワード■ 2 分探索木

■解答■
  基本情報技術者午前平成16年秋問12

 ウ 13

> 2分探索木
> 探索木のうち、次の制約の下に要素の値を割り当てた2分木が2分探索木です。 
> 
> 左の子の値<親の値<右の子の値
> (日本経済新聞社「ソフトウェア開発技術者の新しい本」P67「2分探索木」の項よ
> り引用)
> 
> "12"を除去した後に移動してこの条件を満たすのは13のみ。
> よって答はウ。

 どうもありがとうございました。

> 以下を参照。
> http://sinzo.web.infoseek.co.jp/joho/kodogozen/01kagaku/006/006.htm

 どうもありがとうございました。

>           11
>             /\
>         /    \
>        /       \
>       10      14
>      /      / \
>       /          /     \
>       9         13      15
> 
>           13
>             /\
>         /    \
>        /       \
>       10      14
>      / \      \
>       /     \          \
>       9     11         15
> 
> 
> 上記結果から、解答群にあるのは、「ウ 13」のみである。

 どうもありがとうございました。
 

------------------------------------------------------------------------
041130
■キーワード■ クイックソート

■解答■
  基本情報技術者午前平成16年秋問13

 ウ 適当な基準値を選び,それより小さな値のグループと大きな値のグループ
  にデータを分割する。同様にして,グループの中で基準値を選び,それぞれ
  のグループを分割する。この操作を繰り返していく方法である。

> ア:マージソート
> イ:選択ソート
> ウ:クイックソート
> エ:バブルソート

 アは,挿入法です。マージソートだと,整列済みの列どうしをマージする
といった記述が必要です。

> ア 基本挿入法(insertion sort)
> イ ヒープソート(heap sort)
> ウ クイックソート(quick sort)
> エ バブルソート(bubble sort)
> よって正解はウ。
> 
> 参照文献:福嶋宏訓(2003),情報処理用語辞典(新星出版社),P.257

 どうもありがとうございました。ヒープソートは,選択ソートの一種でした。

> クイックソート@渕田 孝康 http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/
> http://tinyurl.com/6oaex

 どうもありがとうございました。

> ソートのアルゴリズム@NETでいきまっしょい!
http://tinyurl.com/69cn4

 どうもありがとうございました。

> ヒープソートというのもありますね。
> 参考:
> http://su10.sgu.ac.jp/~morita/Seminar/6thStudent/entani/sort/heap/heap.html

 どうもありがとうございました。

> クイックソート:http://www.techscore.com/tech/C/11.html
> 
> だいぶ前に色々なソートをプログラムで作ったりしたことがありましたが
> 時が経つとどのソートがどういった手順のものか、意外と忘れてしまいますね。
> 再確認したいと思います。

 トランプ10枚ぐらいで手でやってみるといいですよ。
 この本は,そんなカード付きでした。おすすめします。
 『1週間で分かる基本情報技術者 集中ゼミ 午後編 2004年版』
 http //www.amazon.co.jp/exec/obidos/ASIN/4532402999/suehirospage-22
 2004年版で十分です。基本情報午後対策にはいいですよ。

> クイックソート:
> 軸になる値を決め、数列をそれより大きいものと小さいものとのグループに
> 分ける。
> 次にその2つのグループの数列に対しても同様のグループ分け処理を行い、1つの
> グループ単位を徐々に小さくしていく処理。
> 
> 以下URLから抜粋
> http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/QSort.htm

 どうもありがとうございました。

>こんなページを見つけました
>http://www.ffortune.net/comp/develop/sort/gaikan.htm

 面白いですが,解説は正当派でないので,注意して下さい。