問題タブ [check-digit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2055 参照

sql - USPSACSキーラインチェックディジット

SQLを使用して「MOD10」チェックディジットアルゴリズムを実装しました。米国郵政公社の住所変更サービスのキーラインについては、ドキュメントの方法に従っていますが、間違った番号を取得しているようです。入力文字列には数字のみが含まれているため、計算が少し簡単になります。私の結果を彼らのテストアプリケーションの結果と比較すると、異なる数値が得られます。何が起こっているのか分かりませんか?誰かが私のアルゴリズムに何か問題があると思いますか?それは明白な何かでなければなりません...

このメソッドのドキュメントは、このドキュメントの12-13ページにあります 。http ://www.usps.com/cpim/ftp/pubs/pub8a.pdf

サンプルアプリケーションは次の場所にあります:http: //ribbs.usps.gov/acs/documents/tech_guides/KEYLINE.EXE

注意:フォーラムユーザーの助けを借りて、以下のコードを修正しました。これは、将来の読者がコード全体を使用できるようにするためです。

0 投票する
7 に答える
16286 参照

php - Luhnチェックサムの生成

Luhnチェックサムを検証するための実装はたくさんありますが、それらを生成するための実装はほとんどありません。私はこれに出くわしましたが私のテストではバグがあることが明らかになり、デルタ変数の背後にあるロジックを理解していません。

Luhnチェックサムを生成するはずのこの関数を作成しましたが、何らかの理由で、生成されたチェックサムが半分の時間無効であることをまだ理解していません。

いくつかの例:

生成されたチェックサムをこのページに対して検証していますが、ここで何が間違っていますか?


将来の参考のために、ここに仕事関数があります。

$ parity変数はこの目的には必要ないため、次のことを確認するために削除しました。

0 投票する
2 に答える
1116 参照

algorithm - Verhoeff アルゴリズムの正しい順列サイクル

私はチェック ディジット スキームに Verhoeff アルゴリズムを実装していますが、Web ソースでは、どの順列サイクルが順列テーブルの基礎を形成するかについて意見の相違があるようです。

ウィキペディアの使用: (36)(01589427)

どうやら、Numerical Recipies は別のサイクルを使用しており、この本では (0)(14)(23)(56789) を使用しています。これは Winters による 1990 年の記事から引用されています。また、Verhoeff がウィキペディアの引用を使用したことにも注意してください。

さて、私の数論は少し錆びていますが、ウィキペディアのサイクルは明らかに 8 乗の後に繰り返されますが、本の 1 つは s^8=s と言っているにもかかわらず 10 になります。表 2.14(b) には 2 サイクルで他のエラーがあるため、いずれにしても疑わしいです。

残念ながら、私は元の記事のコピーを持っていません (そして、支払うにはあまりにもきついです/40 年前の知識がまだ出版社によって身代金を要求されていることにうんざりしています) も、チェックする Numerical Recipes のコピーも持っていません (そして、パラノイアに誘導されたコピー防止プラグインをインストールして、オンラインで表示します)。

では、どれが正しいか分かる人はいますか?どちらも正しいですか?

0 投票する
3 に答える
1766 参照

optimization - RでのVerhoeffアルゴリズムの最適化

Rのチェックディジットを計算するために次の関数を作成しました。

文字列のベクトルで実行するには、をsapply使用する必要があります。これは、strsplitベクトルのリストを返すを使用していることが一因です。これは、適度なサイズの入力のみでもパフォーマンスに影響を与えます。

この関数をどのようにベクトル化できますか?

また、各反復でテーブルを作成する必要があるため、パフォーマンスが低下することも認識しています。これらを新しい環境に保存する方が良い解決策でしょうか?

0 投票する
1 に答える
3991 参照

algorithm - チェックディジットアルゴリズムLuhnmodNvs単純な合計

チェックディジットを作成するためのLuhnmodNアルゴリズムが、すべての文字の単純な合計を実行するのではなく、配置された各文字の値を2倍にすることによって合計を実行する理由を知っていますか?

擬似コードの言葉で:

与えられた:

Luhn mod Nが基本的にこれを行う理由を知っていますか?

単に合計をする代わりに

modチェックディジットを1つの文字に収める操作で両方を終了することもできます


この質問の補足として、Luhnアルゴリズムのグラフィック表現に関心があるかもしれません。これにより、理解がさらに簡単になります。

ここに画像の説明を入力してください

実際、これはMOD関数を使用する必要さえないオリジナルのLuhnアルゴリズムです。

0 投票する
3 に答える
10144 参照

java - MRZ Travel Document(passport) コードを読み取るための Java または C++ の API

MRZ を読み取り、旅行書類 (パスポート) の MRZ コードをデコードするための Java または C++ の API を探しています。

MRZ の詳細については、http: //www.highprogrammer.com/alan/numbers/mrp.html を参照してください。APIを使用してこれを行ったことがありますか?

0 投票する
1 に答える
11271 参照

c# - c# でチェック ディジット (Mod 11) の実装を取得する

Mod11 で検証桁を取得するための C# のコードを教えてもらえますか?

ありがとう。

例:

結果: 0365327

0 投票する
2 に答える
2409 参照

ruby - Rubyでチェックディジットの計算はどのように行われますか?

RubyでFedEx追跡番号のチェックディジット計算を作成しようとしています。

チェックディジット計算の情報と手順は次のとおりです。

  • 数字の位置は右から左にラベル付けされています。
  • 数字1はチェック文字です。
  • 16から22の数字は使用されません。

手順:

  1. 位置2から始めて、偶数の位置の値を合計します
  2. ステップ1の結果に3を掛けます。
  3. 位置3から始めて、奇数の位置の値を合計します。覚えておいてください–位置1は、計算しようとしているチェックディジットです。
  4. 手順2の結果を手順3の結果に追加します。
  5. 手順4の数値に加算すると、10の倍数になる最小の数値を決定します。これがチェックディジットです。

プロセスの例を次に示します(FedExが提供)。 ここに画像の説明を入力してください

では、これをRubyで実装するにはどうすればよいですか?

0 投票する
1 に答える
3019 参照

algorithm - チェック ディジット アルゴリズムのリバース エンジニアリング

チェック ディジットの生成に使用されるアルゴリズムをリバース エンジニアリングしようとしています。

数字は 8 桁で、最後の 1 桁がチェック ディジットです。私はそれをテストするための何千もの有効な数字を持っています.

標準の Luhn、Verhoeff、modulo-10 アルゴリズム (考えられるすべての重みのブルート フォース チェック) を試しましたが、答えが見つかりませんでした。

これを計算することは可能ですか?何か案は?

有効な数値の例を次に示します。

編集: ありがとうございます - 残念ながらコードにアクセスできません。番号は税番号です。番号が正しく入力されていることを確認できる必要があります。私の調査によると、ほとんどの国はかなり標準的な modulo-10 型システムを使用しているようです。約60,000の番号にアクセスできます。

問題を解決することは不可能である可能性があることを理解しています。それは学術的な問題でした。