documents:code:code-015
差分
このページの2つのバージョン間の差分を表示します。
| documents:code:code-015 [2025/08/09 05:32] – 作成 k896951 | documents:code:code-015 [2026/05/12 23:21] (現在) – k896951 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== 200.JANコードのチェックディジット計算 ====== | ||
| + | JANコード(Japanese Article Number)は、日本で使用されているバーコードの一種で、商品識別に用いられます。JANコードには主に以下の2種類があります: | ||
| + | |||
| + | * 13桁JANコード(標準コード) | ||
| + | * 8桁JANコード(短縮コード) | ||
| + | |||
| + | どちらも最後の1桁は「チェックディジット」と呼ばれ、誤入力や読み取りミスを検出するために使われます。 | ||
| + | |||
| + | ===== チェックディジットの計算方法 ===== | ||
| + | |||
| + | ==== 13桁JANコードの場合 ==== | ||
| + | |||
| + | チェックディジットは、最初の12桁の数字から以下の手順で計算されます。 | ||
| + | |||
| + | === 手順 === | ||
| + | |||
| + | - 奇数桁(1, | ||
| + | - 偶数桁(2, | ||
| + | - 手順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, | ||
| + | - 偶数桁(2, | ||
| + | - 手順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で計算するサンプルコードです。 | ||
| + | |||
| + | <code python> | ||
| + | def calculate_jan_check_digit(code: | ||
| + | """ | ||
| + | JANコードのチェックディジットを計算する関数。 | ||
| + | code: チェックディジットを除いたJANコード(12桁または7桁) | ||
| + | return: チェックディジット(1桁の整数) | ||
| + | """ | ||
| + | if len(code) not in [7, 12]: | ||
| + | raise ValueError(" | ||
| + | | ||
| + | digits = [int(d) for d in code] | ||
| + | odd_sum = sum(digits[:: | ||
| + | even_sum = sum(digits[1:: | ||
| + | total = odd_sum + even_sum | ||
| + | remainder = total % 10 | ||
| + | return 0 if remainder == 0 else 10 - remainder | ||
| + | | ||
| + | # 使用例 | ||
| + | print(calculate_jan_check_digit(" | ||
| + | print(calculate_jan_check_digit(" | ||
| + | </ | ||
| + | |||
| + | ===== 参考文献 ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ===== 記事作成者 ===== | ||
| + | |||
| + | この記事は、AIアシスタント Copilot(Microsoft GPT-4) によって生成されました。 k896951が加筆修正を行いました。 | ||
| + | |||
| + | {{tag> | ||
documents/code/code-015.txt · 最終更新: by k896951
