documents:code:code-015
目次
JANコードのチェックディジット計算
JANコード(Japanese Article Number)は、日本で使用されているバーコードの一種で、商品識別に用いられます。JANコードには主に以下の2種類があります:
- 13桁JANコード(標準コード)
- 8桁JANコード(短縮コード)
どちらも最後の1桁は「チェックディジット」と呼ばれ、誤入力や読み取りミスを検出するために使われます。
チェックディジットの計算方法
13桁JANコードの場合
チェックディジットは、最初の12桁の数字から以下の手順で計算されます。
手順
- 奇数桁(1, 3, 5, …, 11桁目)の数字をすべて足す。
- 偶数桁(2, 4, 6, …, 12桁目)の数字をすべて足し、その合計を3倍する。
- 手順1と手順2の合計を求める。
- 合計を10で割った余りを求める。
- 余りが0であればチェックディジットは0。そうでなければ、10から余りを引いた値がチェックディジット。
例
JANコードの最初の12桁が `490123456789` の場合:
- 奇数桁の合計:4 + 0 + 2 + 4 + 6 + 8 = 24
- 偶数桁の合計:9 + 1 + 3 + 5 + 7 + 9 = 34 → 34 × 3 = 102
- 合計:24 + 102 = 126
- 126 ÷ 10 の余りは 6 → 10 - 6 = 4
チェックディジットは「4」 となります。
8桁JANコードの場合
8桁JANコードは、主に小型商品などに使用される短縮版で、最初の7桁からチェックディジットを計算します。計算方法は13桁版と同様です。
手順
- 奇数桁(1, 3, 5, 7桁目)の数字をすべて足す。
- 偶数桁(2, 4, 6桁目)の数字をすべて足し、その合計を3倍する。
- 手順1と手順2の合計を求める。
- 合計を10で割った余りを求める。
- 余りが0であればチェックディジットは0。そうでなければ、10から余りを引いた値がチェックディジット。
例
JANコードの最初の7桁が `4901234` の場合:
- 奇数桁の合計:4 + 0 + 2 + 4 = 10
- 偶数桁の合計:9 + 1 + 3 = 13 → 13 × 3 = 39
- 合計:10 + 39 = 49
- 49 ÷ 10 の余りは 9 → 10 - 9 = 1
チェックディジットは「1」 となります。
Pythonによるチェックディジット計算サンプル
以下は、JANコードのチェックディジットをPythonで計算するサンプルコードです。
def calculate_jan_check_digit(code: str) -> int: """ JANコードのチェックディジットを計算する関数。 code: チェックディジットを除いたJANコード(12桁または7桁) return: チェックディジット(1桁の整数) """ if len(code) not in [7, 12]: raise ValueError("JANコードは7桁または12桁である必要があります。") digits = [int(d) for d in code] odd_sum = sum(digits[::2]) even_sum = sum(digits[1::2]) * 3 total = odd_sum + even_sum remainder = total % 10 return 0 if remainder == 0 else 10 - remainder # 使用例 print(calculate_jan_check_digit("490123456789")) # 出力: 4 print(calculate_jan_check_digit("4901234")) # 出力: 1
参考文献
記事作成者
この記事は、AIアシスタント Copilot(Microsoft GPT-4) によって生成されました。 k896951が加筆修正を行いました。
documents/code/code-015.txt · 最終更新: by k896951