基礎理論|平成24年度 春期 ITパスポート試験(特別措置試験) 問97
〔中問D・チェック数字〕〔テクノロジ〕ISBN コードの 1 桁目から 12 桁目が次の数字の場合,13 桁目に付加されるチェック数字 X はどれか。
〔中問D の記述(抜粋・再掲)〕ISBN コードは,0 〜 9 の数字を使った 13 桁の記号で構成され,左側から桁を数える。最も左側の桁を 1 桁目とする。13 桁目(最も右側の桁)はチェック数字と呼ばれる桁である。1 桁目から 12 桁目の数字を a1 〜 a12,チェック数字を X とする。
〔チェック数字の計算方法〕
(1)a1 〜 a12 について,奇数桁には 1,偶数桁には 3 の重みを付ける。
(2)a1 〜 a12 の各桁に,それぞれの桁に対応した重みを掛けたものの和 S を求める。
S = a1×1+a2×3+a3×1+…+a12×3
(3)S を 10 で割った余り R を求める。
(4)10 から R を引いた値をチェック数字 X とする。なお,この値が 10 になった場合は,チェック数字は 0 とする。
```
〔問の ISBN コード〕
| 桁 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ISBN コード | 9 | 7 | 8 | 4 | 0 | 0 | 0 | 0 | 8 | 6 | 0 | 1 | X |
| 重み | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | - |
```
- ✓ これが正解1
- 3
- 7
- 9
解説
手順の四段を、飛ばさずに最後まで当てていくだけです。
検査のための桁は、決められた手順どおりに計算して求めます。手順は四段あり、どれも飛ばすことができません。一段目は、奇数の桁に一を、偶数の桁に三の重みを置くことです。二段目は、各桁の数字に重みを掛けて、すべてを足すことでした。設問の並びは零の桁が五つあるので、実際に足すのは七つだけです。九と二十一と八と十二と八と十八と三を足すと、七十九になります。三段目は、この和を十で割った余りを取ることでした。七十九ならば、余りは九です。四段目は、十からその余りを引くことです。十から九を引くので、求める桁は一になりました。この数を挙げた肢が当たり、四段目まで進めば出てきます。零の桁は掛けても零なので、足す手間が省けます。余りをそのまま答えにはしません。シラバスも、コード設計を用語として挙げています。
ほかの選択肢はなぜ違うのか
- 三という数を挙げた肢のほうが、こちらに当たります。和の下一桁や、途中の値と結びつくようにも見えます。ところが手順どおりに進めると、この数は現れません。余りは九で、十から引けば一になるからです。四段目まで必ず進みます。
- 七という数を挙げた肢というのが、こちらです。重みを置き違えると、和が変わって別の余りが出ます。奇数の桁と偶数の桁を逆にすると、この辺りの値になります。一段目の置き方を、もう一度確かめる必要が在りました。手順どおりなら現れない数でした。
- 九という数を挙げた肢です。これは三段目で出た余りを、そのまま答えた形でした。四段目の、十から引くという操作が残っています。手順を一段飛ばすと、ちょうどこの数に落ちます。十を引く操作が、まるごと残っていました。
この問題に関係する言葉
- コード設計
出典:平成24年度 春期 ITパスポート試験(特別措置試験) 問97(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くなら基礎理論へ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)