100825/tex/sh100325hashallchecksum.sh

#!/bin/bash

# 10/03/25
# (c) David Vajda
# hash table excersize sh

X=(2 87 16 41 76 65 33 91 7 32)
y=0
i=0
b=100
m=97

echo "X=(${X[@]})"
i=0
while [ $i -lt ${#X[@]} ]
do
    y=$((($b*${X[$i]}+$y)%97))
    echo -n "i=$i,x=${X[$i]},y=$y,b=$b,m=$m; "
    i=$(($i+1))
done

echo "(c) David Vajda"
echo "hash table excersize sh"
echo "10/03/25"
date
echo "hash-value: $y"

s1=1
s2=0
m=251
echo "X=(${X[@]})"
i=0
while [ $i -lt ${#X[@]} ]
do
    s1=$((($s1+${X[$i]})%$m))
    s2=$((($s1+$s2)%$m))
    echo -n "i=$i,x=${X[$i]},s1=$s1,s2=$s2,m=$m; "
    i=$(($i+1))
done

echo "adler-32-checksum: $s2$s1"