多くの市販の書籍には,書籍を識別するための ISBN(International Standard Book Number)コードが付けられている。ISBN コードは,0~9の数字を使った13桁の記号で構成され,左側から桁を数える。最も左側の桁を1桁目とする。1桁目から12桁目までは,国記号,出版者記号及び書籍固有の記号などが含まれる。 ISBN コードの13桁目(最も右側の桁)はチェック数字と呼ばれる桁である。ISBN コードのチェック数字は,1桁目から12桁目の数字を使って,次の計算方法によって求める。ここで,図1のように1桁目から12桁目の数字を a₁~a₁₂,チェック数字を X とする。 〔チェック数字の計算方法〕 (1) a₁~a₁₂について,奇数桁には1,偶数桁には3の重みを付ける。 (2) a₁~a₁₂の各桁に,それぞれの桁に対応した重みを掛けたものの和 S を求める。 S = a₁×1+a₂×3+a₃×1+…+a₁₂×3 (3) S を10で割った余り R を求める。 (4) 10から R を引いた値をチェック数字 X とする。なお,この値が10になった場合は,チェック数字は0とする。 ISBN コードにチェック数字が含まれていることによって得られる効果はどれか。
平成24年度 春期 ITパスポート試験 問98
这道题的解析和你的作答记录。
問 98
- ア
正解 正确答案是 ア。校验数字(check digit)是按固定规则由编码本体各位计算得出、附加在末尾的「专用校验位」。正如中题 D 前言所述,ISBN 编码共 13 位,第 1 位到第 12 位放国家代码、出版者代码、书籍固有代码等,只有第 13 位用作校验数字。其求法是:(1) 对第 1~12 位按奇数位乘 1、偶数位乘 3 加权;(2) 求各位与权重相乘之后的总和 S;(3) 求 S 除以 10 的余数 R;(4) 用 10 减去 R 得到校验数字 X — 但按原题的但书,若该值为 10(即 R 为 0 时)则校验数字取 0。这里的关键在于,X 是由第 1~12 位唯一确定的值。因此当人工录入 ISBN 编码时,只要有任何一位输错,用录入的第 1~12 位重新算出的校验数字就会与录入的第 13 位不一致,从而当场就能由机器判断出「输入有误」。这正是 ア 所说的「由于附加了检验功能,人工录入 ISBN 编码时更容易检测出输入错误」这一效果,也正是设置校验数字的目的本身。
错误イ
承担唯一识别书籍这一作用的,是前言中所说的第 1 位到第 12 位的国家代码、出版者代码和书籍固有代码,而不是第 13 位的校验数字。校验数字是由其余 12 位计算得出的冗余位,其本身不携带哪怕 1 比特的新识别信息(去掉校验数字也照样能识别书籍)。因此,提高库存管理系统、书籍检索系统等中计算机处理的效率,是采用 ISBN 编码本身带来的效果,而不是因为其中包含校验数字所获得的效果。
错误ウ
校验数字只是 0~9 的一位校验值,并不携带表示书名、作者、类别等排列顺序的信息。它的值由第 1~12 位加权总和的余数决定,因此内容相近的书之间也不能保证校验数字取相近的值,以它为线索排序并不会得到有意义的排列。而且书店里陈列书籍的书架本来就由各家店的陈列方针决定,与 ISBN 编码的末位无关。
错误エ
图书馆和学校用于书籍管理的图书分类,是用日本十进分类法(NDC)这类独立于 ISBN 的分类体系来做的,并不由 ISBN 编码的校验数字承担。ISBN 中表示出版方等区分的是国家代码和出版者代码,它们都包含在第 1 位到第 12 位之中。第 13 位的校验数字完全没有分类含义,所以即使加上它,也不会使图书分类变得明确。
- 校验数字(check digit)是指按一定的计算规则从编码本体各位推导出来、附加在末尾的校验用位,其目的仅限于「检测」录入错误或读取错误(不能纠正错误)。在 ISBN-13 中,对第 1~12 位乘以权重 1,3,1,3,…,求总和 S 除以 10 的余数 R,再按 X = 10 − R 求出校验数字;若该值为 10,则取 X = 0。
- 编码体系类的题目要按「哪一位承担什么作用」来区分。在 ISBN 中,识别由第 1~12 位(国家代码、出版者代码、书籍固有代码)承担,图书分类由 NDC 等 ISBN 之外的另一套体系承担,第 13 位的校验数字则专用于校验。只要抓住这些作用互不重叠这一点,凡是提到识别、排序、分类的选项就都可以排除。