クレジットカード番号の簡単な検証を実装しようとしています。ウィキペディアでLuhnアルゴリズムについて読みました:
- 右端のチェックディジットから数えて左に移動すると、2桁おきに値が2倍になります。
- 製品の桁(たとえば、10:1 + 0 = 1、14:1 + 4 = 5)を、元の数値の2倍にされていない桁と合計します。
- 10を法とする合計が0に等しい場合(合計がゼロで終わる場合)、その数はLuhnの式に従って有効です。それ以外の場合は無効です。
ウィキペディアでは、Luhnアルゴリズムの説明は非常に簡単に理解できます。ただし、 Rosetta Codeやその他の場所(アーカイブ)でのLuhnアルゴリズムの他の実装も確認しました。
これらの実装は非常にうまく機能しますが、なぜ配列を使用して作業を行うことができるのかについて私は混乱しています。彼らが使用する配列はLuhnアルゴリズムとは関係がないようで、ウィキペディアに記載されている手順をどのように達成するかはわかりません。
なぜ彼らは配列を使用しているのですか?それらの重要性は何ですか、そしてウィキペディアで説明されているようにアルゴリズムを実装するためにどのように使用されていますか?