問題タブ [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 に答える
102 参照

r - GTIN-13 アルゴリズムの効率的な実装

GTIN-13 チェック ディジット アルゴリズムを実装する効率的な方法を探しています。thisthisなどの関連する SO 投稿をいくつか見てきましたが、どちらの場合も効率は注目されていないようです。

簡単に言えば、このアルゴリズムは数値文字列 (123765 など) を取り、1 つおきに (右から左に) 1 または 3 を掛けて合計を計算し (so 5 * 1 + 6 * 3 + 7 * 1 + 3 * 3 + 2 * 1 + 1 * 3 = 44)、次に等しい最も近い 10 の倍数からこの合計を減算します。またはそれ以上をこの合計 (この場合は50 - 44 = 6) にして、最終的なチェック ディジット (ここでは 6) を導き出します。入力は 12 桁の長さであると予想されますが、それより短い場合は、左から 0 を単純に埋め込むことができます (123765実際には のように予想されます000000123765) が、結果は同じになります。

これを単純に実装すると、次のようになります。

ただし、これは for ループと、文字列への変換と数値への変換のため、非効率的です。例えば:

平均的なデスクトップで約 6 秒かかります。

この check.sum をより効率的に計算するにはどうすればよいですか?

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

python - 2 つの整数を文字列 (python) に連結する方法は?

チェック ディジットを計算し、生成されたクレジット カードの末尾に追加しようとしています。だから私は2つの整数を文字列に連結したい。問題は、このコードのチャンクが、数値そのものではなく、数値の LIST を生成することです..

ここでは、Luhn アルゴリズムの要件を満たすクレジット カードを生成するために、チェックサムに追加する必要がある数を計算しようとしています。「5」という数字を期待していますが、代わりに「123456」のような 5 つの要素のリストを取得します。そして、それは最初の番号の最後に連結されます...なぜですか?たとえば、2222222225 と NOT 222222222123456 を取得したい