FIELD 05

アルゴリズム

変数、配列、条件分岐、繰返し、探索、シミュレーション、プログラムの読解などを扱います。値がどの順番で変わるかを追うことが基本です。

掲載数
99問
このページ
21–30問
タグ一覧から問題を絞り込む 50種類・複数選択はOR検索

2分探索に関する説明として最も適当なものはどれか。

  1. 0

    探索するデータ列は、あらかじめ昇順または降順に整列されている必要がある

  2. 1

    探索は必ずデータ列の先頭から順に始める

  3. 2

    目的のデータが先頭にある場合でも、線形探索より常に比較回数が少ない

  4. 3

    n個のデータを探索するときの比較回数は、おおよそn個すべてを調べる回数になる

正答と解説を確認

正答0. 探索するデータ列は、あらかじめ昇順または降順に整列されている必要がある

解説

2分探索は、整列済みのデータ列について中央の値と比較し、探索範囲を半分ずつ狭める方法である。

出典
基本情報技術者H26秋期午前 問6(改題)

商品コードや会員番号などにチェックディジットを付ける主な目的として最も適当なものはどれか。

  1. 0

    コードの値の入力誤りを検出しやすくする

  2. 1

    コードに含まれる数字を暗号化して読めなくする

  3. 2

    コードの桁数を必ず短くする

  4. 3

    コードを入力した人の本人確認を行う

正答と解説を確認

正答0. コードの値の入力誤りを検出しやすくする

解説

チェックディジットは、コードの一部に検査用の数字を付け、入力したコードの値の誤りを検出しやすくする仕組みである。

出典
基本情報技術者H24春期午前 問70(改題)

整列済み配列を2分探索するとき、探索範囲を left から right までの添字で表す。探索範囲にまだ要素が残っていることを表す条件として最も適当なものはどれか。

  1. 0

    left < right

  2. 1

    left <= right

  3. 2

    left + 1 < right

  4. 3

    left + 1 <= right

正答と解説を確認

正答1. left <= right

解説

leftとrightが同じ値のとき、探索範囲には1個の要素が残っている。したがって、範囲が空でない条件はleft <= rightである。

出典
応用情報技術者H23秋期午前 問8(改題)

モンテカルロ法を使って、正方形に内接する円の面積を近似する方法として最も適当なものはどれか。

  1. 0

    正方形内に乱数で多数の点を打ち、円の中に入った点の割合から面積を推定する

  2. 1

    円に内接する正多角形を一つだけ描き、その面積をそのまま円の面積とする

  3. 2

    正方形の中に同じ大きさの小円を隙間なく詰め、その個数だけで求める

  4. 3

    円周上の1点だけを選び、中心からの距離を測って面積とする

正答と解説を確認

正答0. 正方形内に乱数で多数の点を打ち、円の中に入った点の割合から面積を推定する

解説

モンテカルロ法は、乱数を用いた多数の試行から近似値を求める方法である。正方形内に点をランダムに打ち、円内に入った割合を使えば面積を近似できる。

出典
応用情報技術者H27春期午前 問6(改題)

表計算ソフトで、C2:E2に同じ月の3支店の売上額がある。C3に「C2がその月の3支店平均を下回れば×、そうでなければ○」を表示し、D3:E3にも複写して使いたい。C3に入れる式として最も適当なものはどれか。

  1. 0

    IF(C2<AVERAGE(C2:E2), "×", "○")

  2. 1

    IF(C2<AVERAGE($C2:$E2), "×", "○")

  3. 2

    IF($C$2<AVERAGE($C$2:$E$2), "×", "○")

  4. 3

    IF(C2<AVERAGE(C$2:E$2), "○", "×")

正答と解説を確認

正答1. IF(C2<AVERAGE($C2:$E2), "×", "○")

解説

複写先では比較するセルはC2からD2、E2へ変わる必要がある。一方、平均の範囲は同じ行のC列からE列に固定したいので、列だけを絶対参照にした$C2:$E2が適切である。

出典
ITパスポートH30春期 問60(改題)

配列A[0]〜A[9]に正の整数を格納する。まずA[k mod 10]を調べ、空いていなければA[(k+1) mod 10]、それも空いていなければA[(k+4) mod 10]に格納する。ここで、x mod y はxをyで割った余りを表す。16、43、73、24、85を順に格納すると、85はどこに入るか。ここで、空きは0で表す。

  1. 0

    A[3]

  2. 1

    A[5]

  3. 2

    A[6]

  4. 3

    A[9]

正答と解説を確認

正答3. A[9]

解説

mod は割り算の余りを表すので、16 mod 10 = 6、43 mod 10 = 3である。16はA[6]、43はA[3]、73はA[3]が使用済みなのでA[4]、24はA[4]が使用済みなのでA[5]に入る。85ではA[5]とA[6]が使用済みなので、(85+4) mod 10 = 9よりA[9]に入る。

出典
基本情報技術者H25秋期午前 問5(改題)

配列 [2, 4, 1, 3] に対して、左から隣り合う要素を比べ、左の値が大きければ入れ替える操作を末尾に向かって繰り返す。この操作を必要な回数繰り返して昇順に並べた結果はどれか。

  1. 0

    [1, 2, 3, 4]

  2. 1

    [1, 3, 2, 4]

  3. 2

    [3, 1, 4, 2]

  4. 3

    [4, 3, 2, 1]

正答と解説を確認

正答0. [1, 2, 3, 4]

解説

隣り合う要素を比べて必要なら入れ替える処理を繰り返すと、小さい値が前へ、大きい値が後ろへ移動し、最終的に[1, 2, 3, 4]となる。

出典
ITパスポートR5公開問題 問60(改題)

配列の各要素を先頭から順に調べ、値が1なら文字Aを、1でなければ文字Bを末尾に追加する。結果を「AABAB」にする配列として最も適当なものはどれか。

  1. 0

    [0, 0, 1, 2, 1]

  2. 1

    [0, 1, 2, 1, 1]

  3. 2

    [1, 1, 1, 2, 0]

  4. 3

    [1, 1, 2, 1, 0]

正答と解説を確認

正答3. [1, 1, 2, 1, 0]

解説

値が1ならA,1以外ならBになる。「AABAB」に対応する並びは,1,1,1でない値,1,1でない値なので,[1, 1, 2, 1, 0]が適当である。

出典
ITパスポートR6公開問題 問62(改題)

配列 [3, 5, 1, 2, 4] を選択ソートで昇順に並べる。先頭から順に、その位置以降の最小値を探して入れ替える。先頭から3番目の位置を確定する処理が終わった直後の配列として最も適当なものはどれか。

  1. 0

    [1, 2, 3, 4, 5]

  2. 1

    [1, 2, 3, 5, 4]

  3. 2

    [4, 5, 3, 2, 1]

  4. 3

    [5, 4, 3, 2, 1]

正答と解説を確認

正答1. [1, 2, 3, 5, 4]

解説

1回目は最小値1を先頭へ移して[1, 5, 3, 2, 4]、2回目は2を2番目へ移して[1, 2, 3, 5, 4]となる。3番目の位置を確定する処理では、3がすでに3番目にあるので配列は変わらず[1, 2, 3, 5, 4]である。

出典
ITパスポートR8公開問題 問67(改題)

5桁の数54321について、左の桁から順に1、2、3、4、5の重みを掛け、その積の和を13で割った余りを配列の位置に使う。54321を格納する位置はどれか。

  1. 0

    2

  2. 1

    5

  3. 2

    9

  4. 3

    11

正答と解説を確認

正答2. 9

解説

5×1+4×2+3×3+2×4+1×5=35である。35を13で割った余りは9なので、位置9に格納する。

出典
基本情報技術者R1秋期午前 問8(改題)