令和5年度技術士第一次試験:I 基礎科目:I-2-3

令和5年度第一次試験問題
目次

問題

(出典:日本技術士会のホームページ 過去問題(第一次試験) 基礎科目 令和5年度)

コーチング対話解答

ツトムさん

ISBN番号は本の裏の値段の上などに書かれていますね。

マナブ先生

そうですね。
その番号にどのような意味があるのかを知る問題にもなっています。
今回、最後の数字が問題になっていますが、
この数字は
チェックデジット
と呼ばれています。
これはどのような役割を持っていると思いますか?

ツトムさん

情報システム系では、よく誤り検出として特別な数字を設定していますよね。
それですか?

マナブ先生

その通りです。
誤入力を見つけるためなのです。
それでは問題を見ていきましょう。
規則の式はどうなっていますか。

技術士コーチング リフレッシュ
ツトムさん

a13+3a12+a11+3a10+a9+3a8+a7+3a6+a5+3a4+a3+3a2+a1≡0 (mod 10)
です。

マナブ先生

問題として与えられたISBN-13の番号のa13は何ですか?

ツトムさん

最初の数字なので「9」ですね。
それから右に行くにしたがって番号が下がっていき、
a1がXになっています。
このような問題の場合は、
とりあえず代入してみるのがいいですね。

マナブ先生

その通りです。

ツトムさん

9+3×7+8+3×4+1+3×0+3+3×3+4+3×1+9+3×4+X
= 91+X ≡ 0 ( mod 10 )
となりました。
mod関数は、(mod m)となっていた場合、
mで割った時の余りを返す関数ですね。
だから、91+Xを10で割って、余りが0ですから、
Xは9ですね。

マナブ先生

そうですね。
91+9=100となり、それを10で割ると0ですからね。

ツトムさん

答えは、⑤ ですね。

マナブ先生

正解です。
この問題の関係式のことを合同式と呼びますよね。

合同式

abを整数、mを正の整数とする。「amで割った余り」と「bmで割った余り」が等しいことを
  ab (mod m)
と表す。

マナブ先生

読み方は「a合同bモッドm」でしたね。
 
この問題の背景は、最初にも述べましたが、
誤り検出技術についてです。
バーコードやクレジットカードの番号などにも採用されています。

ツトムさん

数字の羅列だと、入力時に間違いが起こりやすいですからね。
誤った入力をしたときにエラーが出てくれると、
入れ直すことができますので助かります。
でも、どうして一つ飛びに3倍するのでしょうか?
単純に足し算ではだめなのですか?

技術士コーチング リフレッシュ
マナブ先生

良い質問ですね。
もし単純に足し算をするなら、
隣り合う数字を順番を間違って入力してしまっても合計は変わりません。
ところが、一つ置きに1倍と3倍にしておくと、
この誤りを検出できます。

ツトムさん

そういう工夫もされているのですね。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次