t-nissieが確認した範囲では、2008年と2009年の大学入試センター試験の志願者 には数字6桁の「試験場コード」と数字4桁+アルファベット1文字の「受験番号」 が割り振られた。アルファベットはABCHKMRUXYZの11文字のどれかであり、 受験番号はたとえば「1234X」となる。このアルファベットはチェックディジットである。 試験場コード(d1 d2 d3 d4 d5 d6としよう)と 受験番号の数字4桁(d7 d8 d9 d10)とから、それぞれに1〜10をかけて、和をとって
d1+2d2+3d3+4d4+5d5+6d6+7d7+8d8+9d9+10d10 ≡ x mod 11 (1)
と11で割った余りxについて、下の表を引くことで一意に定まる。
表
| 11で割った余 | 0 1 2 3 4 5 6 7 8 9 10 |
|---|---|
| アルファベット | A B C H K M R U X Y Z |
なお、(1)式は合同式という。上のような使い方はちょっと正しくないが、 数組の番号とそのチェックディジットからチェックディジットの計算式を 解読する時に非常に便利な記法なので示しておいた。
このチェックディジットという仕組みにより、採点の機械は、データベース(志願者名簿)を参照しなくても、 受験生のマークミスを簡単に発見できるようになっている。
大学入試センター試験では試験監督が出欠確認をした上、解答用紙を受験番号順に集める。 試験場コードはいちおう記入するがマークはしない。さらに氏名まで記入させる。 受験番号のマークミスがあっても、さらには受験番号がマークされていなくても、 ほとんどの場合大学入試センターはそれを発見することができ、修正している。 試験場コードの誤記や受験番号のマークミスについての不安は無用である。
試験場コードと受験番号とがあれば、次のRubyスクリプトdnc.rbで簡単にチェックできる。
実行例: ./dnc.rb examples.dat