跳到正文

平成24年度 春期 ITパスポート試験 問100

这道题的解析和你的作答记录。

問100
頻出度★★☆

多くの市販の書籍には,書籍を識別するための 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とする。 表計算ソフトを使ってチェック数字を求めることにした。チェック数字を求める次のワークシート中のセル N2に入れる適切な式はどれか。このワークシートは,セル B2~M2に数字を入力することで,繰り返し使うものとする。 (1) セル B1~N1に,ISBN コードの桁数を表す数値を入力する。 (2) セル B2~M2に,ISBN コードの1~12桁を,各セルに1桁ずつ入力する。 (3) セル B3~M3に,ISBN コードの各桁に対応した重みを入力する。 (4) セル B5に,ISBN コードに各桁の重みを掛けたものの合計を求める。 (5) セル B6に,剰余関数を使った次の式を入力する。   剰余(B5,10) (6) セル N2に,チェック数字を求める式を入力する。

ABCDEFGHIJKLMN
1桁12345678910111213
2ISBN コード978400004321
3重み131313131313
4
5和(S)68
6剰余(R)

注記 網掛けの部分は,表示していない。 図3 チェック数字を求めるワークシート

出典 平成24年度 春期 ITパスポート試験 問100
解説

問 100

  • 错误ア

    10-B6 在余数 R 为 1~9 时确实会返回正确的值,乍看之下不错,但当 R=0 时它会返回 10 这个两位数。校验数字是填入 ISBN 第13位的 1 位数字,所以不可能是 10,正确应为 0。这张工作表的前提是替换 B2~M2 的数字反复使用,因此总和为 10 的倍数(R=0)的输入当然会出现。只对某一个特定例子正确、却并非对所有输入都正确的公式,不能称为合适的公式。

  • 错误イ

    B6-10 的相减方向反了。B6 是 求余(B5,10) 的结果,必然落在 0~9 的范围内,再从中减去 10,结果必然是 −10~−1 的负值。在图中的例子里也是 8-10=−2,作为校验数字毫无意义。校验数字采用的是对 10 求补的思路,即“用 10 减去余数”,而该式把被减数和减数互换了,属于明确的错误。

  • 错误ウ

    10-求余(B6,10) 把求余函数用在了错误的位置。B6 已经是 求余(B5,10) 的结果,本就处于 0~9 的范围,所以对它再应用一次 求余(B6,10),值也不会改变,仍然就是 B6 本身。也就是说这个公式最终与 ア 的 10-B6 完全是同一个计算,同样存在 R=0 时返回 10 的缺陷。应该取余数的不是 B6,而是做完减法之后的 10-B6。

  • エ

    正解 正确答案是 エ 求余(10-B6,10)。首先追踪图3的工作表究竟在计算什么。第3行的权重从 B 列开始按 1,3,1,3,… 交替排列,B5 的 和(S) 就是 ISBN 编码各位分别乘以其权重后的总和。用图中的数值验证:9×1+7×3+8×1+4×3+0×1+0×3+0×1+0×3+4×1+3×3+2×1+1×3 = 9+21+8+12+0+0+0+0+4+9+2+3 = 68,与图中显示的 B5=68 一致。接着,B6 的 求余(R) 按 (5) 的指示为 求余(B5,10),即 求余(68,10)=8。ISBN 第13位的校验数字是“用 10 减去总和除以 10 所得的余数”,但这里有一个陷阱:当余数 R 为 0 时,10-R 会变成 10,作为必须是 1 位的校验数字无法成立(正确应为 0)。本题的工作表已明确说明是通过向单元格 B2~M2 重新输入数字来反复使用的,因此必须一并考虑输入的 ISBN 编码使 R=0 的情况。于是,把 10-B6 的结果再除以 10 取一次余数:当 R 为 1~9 时会原样返回 10-R(=9~1),仅当 R=0 时得到 求余(10,10)=0,从而正确地得到 0。用一个公式同时满足这两点的正是 エ 的 求余(10-B6,10)。在图中的例子里,求余(10-8,10)=求余(2,10)=2,因此填入 N2 的校验数字为 2。

ここがポイント
  • 校验位(校验数字)的计算步骤 —— 给每一位乘上权重后求和(S),再求它除以模(这里是 10)所得的余数(R),然后用模减去余数,得到用于检验的 1 位数字。ISBN-13 中权重按 1,3,1,3,… 交替。
  • 用求余(MOD)函数消除边界值的思路 —— 10-R 只有在 R=0 时会变成 10 而无法容纳在 1 位内,因此对整个结果再取一次 求余(…,10),把它归入 0~9。判断电子表格公式的标准,不是它对某一组特定数据是否成立,而是它在反复使用的所有输入下是否都成立。
用語
解答問100エ
练这一题

作答记录