How to resolve the algorithm Damm algorithm step by step in the jq programming language

Published on 12 May 2024 09:40 PM
#Jq

How to resolve the algorithm Damm algorithm step by step in the jq programming language

Table of Contents

Problem Statement

The Damm algorithm is a checksum algorithm which detects all single digit errors and adjacent transposition errors.

The algorithm is named after H. Michael Damm.

Verify the checksum, stored as last digit of an input.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Damm algorithm step by step in the jq programming language

Source code in the jq programming language

def checkdigit:
       [[0, 3, 1, 7, 5, 9, 8, 6, 4, 2],
        [7, 0, 9, 2, 1, 5, 4, 8, 6, 3],
        [4, 2, 0, 6, 8, 7, 1, 3, 5, 9],
        [1, 7, 5, 0, 9, 8, 3, 4, 2, 6],
        [6, 1, 2, 3, 0, 4, 5, 9, 7, 8],
        [3, 6, 7, 4, 2, 0, 9, 5, 8, 1],
        [5, 8, 6, 9, 7, 2, 0, 1, 3, 4],
        [8, 9, 4, 5, 3, 6, 2, 0, 1, 7],
        [9, 4, 3, 8, 6, 1, 7, 2, 0, 5],
        [2, 5, 8, 1, 4, 3, 6, 7, 9, 0]]
      as $m
    | tostring | explode
      # "0" is 48
    | 0 == reduce (.[] - 48) as $d (0; $m[.][$d] );
	
# The task:
5724, 5727, 112946, 112949
| checkdigit as $d
| [., $d]

[5724,true]
[5727,false]
[112946,true]
[112949,false]


  

You may also check:How to resolve the algorithm Return multiple values step by step in the Perl programming language
You may also check:How to resolve the algorithm Loops/N plus one half step by step in the Pike programming language
You may also check:How to resolve the algorithm Combinations and permutations step by step in the EasyLang programming language
You may also check:How to resolve the algorithm Empty program step by step in the CoffeeScript programming language
You may also check:How to resolve the algorithm Knapsack problem/Unbounded step by step in the Prolog programming language