令和元年度秋期 基本情報技術者試験 午前 問3~問6|過去問解説

令和元年度秋期・基本情報技術者試験の午前問3~問6を解説します。無向グラフの隣接行列、関数の極限、正規分布、乱数を使った処理の確率を順に確認します。

Share
【基本情報処理技術者試験】最新問題のテクノロジ系をまったり解く 問3~問6【令和元年度秋試験】
この記事について
2019年(令和元年度)秋期に実施された基本情報技術者試験 午前の問3~問6を扱う過去問解説です。現在の試験制度や出題形式とは一部異なりますが、コンピュータサイエンスの基礎学習には引き続き活用できます。
出典・引用について
問題文、選択肢および試験問題に含まれる図表は、独立行政法人情報処理推進機構(IPA)が公開している令和元年度秋期試験から引用しています。掲載にあたり、改行、表組み、全角・半角、画像配置などを調整している場合があります。問題の趣旨は変更していません。解説、補足、計算過程および当サイト作成の図は、工学じじいの縁側日記によるものです。
IPA公式・問題冊子(PDF) / IPA公式・解答例(PDF) / 2019年度の過去問題一覧

R01基本情報技術者試験 秋期試験に挑戦

令和元年度 基本情報技術者試験 午前問題 問3~問6

令和元年度 基本情報技術者試験 午前問題 問3

出典:令和元年度 秋期 基本情報技術者試験 午前 問3

ノードとノードの間のエッジの有無を隣接行列を用いて表す。ある無向グラフの隣接行列が次の場合、グラフで表現したものはどれか。ここでノードを隣接行列の行と列に対応させて、ノード間にエッジが存在する場合は1で、エッジが存在しない場合は0で表す。

$$\begin{array}{c|cccccc}{}&a&b&c&d&e&f\cr\hline a&0&1&0&0&0&0\cr b&1&0&1&1&0&0\cr c&0&1&0&1&1&0\cr d&0&1&1&0&0&0\cr e&0&0&1&0&0&1\cr f&0&0&0&0&1&0\end{array}$$

ア f:id:gomta777:20191030103116p:image:w400
イ f:id:gomta777:20191030103107p:image:w400
ウ f:id:gomta777:20191030103111p:image:w400
エ f:id:gomta777:20191030103114p:image:w400

解説

無向グラフの問題です、行列(行列の書き方悩んで、表にしちゃいましたが、本物の試験では行列表記です)で接続されているエッジは1で表されています。
接続の状況を1になっているところだけ抜き出してみてみます。
(↓)行列(→) =>( a-b ), ( b-a ), ( b-c ), ( b-d ), ( c-b ), ( c-d ), ( c-e ), ( d-b ), ( d-c ), ( e-c ), ( e-f ), ( f-e )
  下線のものは、a-b, b-aのように両側から書いているもの、今回は無向グラフなのでどっちかがわかってれば解ける!
=>( a-b ), ( b-c ), ( b-d ), ( c-d ), ( c-e ), ( e-f )
の接続がされているものを選べばよい。
解答群は(c-e)、(b-d)の接続はすべて共通なので、a-fの横並びの切れ目を見ていくと、a-b-c-d e-fとなっているものは、ウが正解

令和元年度 基本情報技術者試験 午前問題 問4

出典:令和元年度 秋期 基本情報技術者試験 午前 問4

$a$ 及び $b$を定数とする関数 $f(t)=\frac{a}{t+1}$ 及び $g(t)=\frac{b}{t^2-t}$ に対して $\lim_{t \to \infty} \frac{g(t)}{f(t)}$はどれか?
ここで$a\neq0, b\neq0, t>0$とする。

ア 0
イ 1
ウ $\frac{a}{b}$
エ ∞

解説

がっつり数学の問題ですが、簡単な極限の求め方がわかっていればさほど難しくありません。
まず数式を、組み立ててみます。

$f(t)=\frac{a}{t+1}$、 $g(t)=\frac{b}{t^2-t}$
なので、
$\lim_{t \to \infty} \frac{g(t)}{f(t)}= \lim_{t \to \infty} \frac{b}{t^2-t}/\frac{a}{t+1}$

ここで、頑張って変形(式の整理)していきます。

$\lim_{t \to \infty} \frac{b}{t^2-t}\div\frac{a}{t+1}=\lim_{t \to \infty}\frac{b}{t^2-t}\cdot\frac{t+1}{a}$ ← 割り算を逆数の掛け算に直します
$=\lim_{t \to \infty}\frac{b(t+1)}{a(t^2-t)}$ ← 約分します。
$=\lim_{t \to \infty}\frac{b}{a}\cdot\frac{(t+1)}{(t^2-t)}=\lim_{t \to \infty}\frac{b}{a}\cdot\frac{\frac{1}{t}+\frac{1}{t^2}}{1-\frac{1}{t}}$ ← 一番次数の大きい項で割っていきます
これで極限を考えると
$t \to \infty$の時、$\frac{1}{t}, \frac{1}{t^2} \to 0$
$\frac{b}{a}\cdot\frac{0 + 0}{1-0} \to 0$

アが正解

令和元年度 基本情報技術者試験 午前問題 問5

出典:令和元年度 秋期 基本情報技術者試験 午前 問5

平均が60、標準偏差が10の正規分布を表すグラフはどれか。

ア f:id:gomta777:20191030140401p:image:w200 イ f:id:gomta777:20191030140407p:image:w200
ウ f:id:gomta777:20191030140351p:image:w200 エ f:id:gomta777:20191030140356p:image:w200

解説

数学の確率統計の分野の問題です。今回どうしちゃったんでしょうね?(笑)
正規分布(ガウス分布)は、以下の数式で表されます。

\[ f(x)=\dfrac{1}{\sqrt{2\pi}\sigma}\exp\left(-\dfrac{(x-\mu)2}{2\sigma2}\right) \]

平均が$\mu$で分散が$\sigma^2$です。
グラフにすると、以下のようになります。

f:id:gomta777:20191030144444p:image:w300

図:正規分布

よって、その性質を表しているグラフは、平均と分散の関係を正しく表している「ア」ということになります。

ちなみに、pythonとmatplotlibで書いたものは以下のようになります。

f:id:gomta777:20191030144655p:plain

図:pythonとmatplotlibで書いたやつ

令和元年度 基本情報技術者試験 午前問題 問6

出典:令和元年度 秋期 基本情報技術者試験 午前 問6

Random(n)は0以上n未満の整数を一様な確率で返す関数である。整数型の変数A,B及びCに対して次の一連の手続きを実行したとき、Cの値が0になる確率はどれか?

A=Random(10)
B=Random(10)
C=A-B
ア 1/100
イ 1/20
ウ 1/10
エ 1/5

解説

数学の確率の問題です。
Aが0~9の乱数を発生して、Bが0~9の乱数を発生させるとき、AとBが同じ値になる確率を求めなさい。
という問題に置き換えられます。
さいころ2つふって同じ目になる確率の計算と一緒ですね。
1回目0が出る確率は1/10、2回目も0が出る確率は1/10となります。
そのパターンが、0~9まで10種類あるので、
1/10×1/10×10=1/10
「ウ」が答え。


シリーズ内の記事

内容の誤りや分かりにくい箇所は、お問い合わせページからお知らせください。

Read more

どうしてWindowsはCドライブから始まるの? AとBはどこへ行った?

どうしてWindowsはCドライブから始まるの? AとBはどこへ行った?

どうしてWindowsはCドライブから始まるの? AとBはどこへ行った? Windowsを使っていると、システムが入っているドライブってだいたい C: ですよね。 でも、よく考えると変じゃないですか? アルファベットなら普通はAから始まりそうなのに、なんでいきなりCなの? じゃあ、 A: B: はどこに行ったんだよ、って話です。 これ、別にCに何か特別な意味があるわけじゃありません。 昔、AとBを先に使っちゃったから、その次がCになった。 だいたいそれだけの話です。 そもそも「Cドライブ」ってWindows系の文化 まず、C: とか D: とかいう呼び方は、今だとWindowsでおなじみのものです。 LinuxやmacOSでは、基本的にこんな呼び方はしません。 Linuxなんかだと、 / ├─ home ├─ usr ├─ var └─ ... みたいに / を一番上にして、ディスクもそのディレクトリ構造の中にくっつけて使います。 じゃあWindowsの C: D: E: はどこから来たのか。 Windowsより前の MS-DOS です。 ……

DirectXTK講座 第2回:Direct3D 11のテンプレート導入からウィンドウを表示まで

DirectXTK講座 第2回:Direct3D 11のテンプレート導入からウィンドウを表示まで

DirectXTK講座 第2回:Direct3D 11のテンプレートを導入してウィンドウを表示しよう 今回は、DirectXTKを使ったプログラムを作る土台として、Direct3D 11のプロジェクトテンプレートをVisual Studioに導入し、実際にウィンドウが表示されるところまで確認してみよう! 使用するのは、Chuck Walbourn氏が公開している directx-vs-templates を使います。個人のリポジトリですが、MS公式からもリンクされており、ほぼ公式です。テンプレートを使うことで、あらかじめWindow1枚ぐらいペロッと出すところまでを作ってくれます。 そのために、テンプレートを自分の開発環境にインストールする必要があります。VS(VisualStudio)までは前回まででインストールできていると思うので、それにテンプレートを追加するって感じ。 1.Direct3D用テンプレートを入手する まず、ブラウザ(なんでもいいよ)で次のGitHubリポジトリを開きます。 directx-vs-templates - GitHub リポジトリを開いたら