KM-88情報Ⅰ 対策問題

共通テスト過去問チャレンジ令和7年度 本試験

令和7年度本試験 第1問 5桁の利用者IDに付けるチェックディジットの生成方法として、図の【生成方法A】【生成方法B】の2種類を考える。これらのチェックディジットでは、1桁の入力ミスは検出できても、2桁の入力ミスは、検出できないことがある。生成方法Bはこの点について多少検出できるように工夫されている。 生成方法Aでは検出できることはないが、生成方法Bでは検出できることがある入力ミスとして、最も適当なものを選べ。

KM-88の問題図版
解答・解説を見る

正解: 4

正答

4

問題の整理

2つの生成方法の本質的な違いは「桁の重み」です。

  • 方法A: 全桁の重みが1(ただの合計)
  • 方法B: 奇数桁の重みが3、偶数桁の重みが1

「方法Aでは絶対に検出できないが、方法Bでは検出できることがある」ミス——つまり「合計は変わらないが、重みつき合計は変わりうる」ミスを探します。

解き方

鍵になるのは数字の順序を入れ替えるミス(転記ミス)です。たとえば「…37…」を「…73…」と書き間違えても、含まれる数字は同じなので合計は変わりません。方法Aのチェックディジットは合計だけで決まるため、順序の入れ替えは原理的に検出不可能です。

では方法Bではどうか。連続する二つの桁は、必ず一方が奇数桁(重み3)・もう一方が偶数桁(重み1)です。3と7を入れ替えると、重みつき合計は「3×3+7」=16 から「7×3+3」=24 へと変わるので、チェックディジットが合わなくなり検出できることがあります。これが正解の選択肢4です。

一方、「奇数桁どうしの順序を逆にする」場合は、どちらも重み3なので重みつき合計も変わらず、方法Bでも検出できません(選択肢3が誤りの理由)。「数字を二つ間違える」系のミスは合計自体が変わりうるので、方法Aでも検出できることがあり、「Aでは検出できることはない」という条件に合いません。

実際のクレジットカード番号の検証(ルーンアルゴリズム)も、この「桁ごとに重みを変えて転記ミスを捕まえる」発想で作られています。

選択肢の確認

1.× 数字自体が変われば合計も変わりうるので、Aでも検出できることがある。
2.× 同上。Aで検出できる場合がある。
3.× 同じ重み(3)どうしの入れ替えはBでも検出できない。
4.○ 合計は不変(Aは万事休す)だが、重み3と1が入れ替わるのでBは検出しうる。

ここだけは覚えよう

順序の入れ替えは「合計」では捕まらない — 桁ごとに重みを変えると転記ミスを検出できる。

関連問題

KM-87KM-89