Bytes
次のように定義された多次元配列があります。
type
TRow = array[0..6] of Byte;
var
All: array[0..19112079] of TRow;
ここで、配列を構成する各行の一意のチェックサムを生成し、次のようにファイルに保存したいと思います。
var
I: Integer;
begin
for I := 0 to 19112079 do
begin
Checksum := GenerateChecksum(All[I]);
Writeln(F, Checksum);
end;
end;
機能はどうすればいいGenerateChecksum()
ですか?xor
とを試しましCRC32
たが、重複した値を返すため、このタスクにはあまり適していません。行ごとに一意のチェックサムを生成したいと思います。
EDIT ああ、行を比較できるようにチェックサムを計算する必要があります。異なる行の 2 つのチェックサムを取り、一方が他方よりも大きいか、他方よりも小さいか、または等しいかを判断したいと思います。そのような何かを達成するチャンスはありますか?
EDIT2 隣接する 2 行のデータ例:
Row x - 1: 120, 444, 323, 984, 1024, 76, 130
Row x: 120, 444, 323, 984, 1024, 76, 222
Row x + 1: 120, 444, 323, 984, 1024, 76, 121
. . .
Row x + n: 120, 444, 323, 984, 6333, 33, 935
ありがとうございました。