問題タブ [chinese-remainder-theorem]

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 投票する
1 に答える
583 参照

haskell - Haskell での CRT 実装

中国剰余定理アルゴリズムを機能させようとしているので、オンラインでヘルプを探しています。Haskell でこの CRT の例をコンパイルしようとしていますが、これらのエラーが発生しています。extGCD独自の機能を実装しました。

エラーは次のとおりです。

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

c - 逆関数は正しく動作しますが、while ループの後で動作すると間違った結果が生成されます

私は中国の剰余定理を実装しようとしています。これを行うには、いくつかの数値の乗法逆数を見つける必要があります。関数は正しく動作しますが、while ループの後で動作すると、間違った結果が生成されます。

0 投票する
0 に答える
993 参照

python - 中国剰余定理を使用した大規模整数の算術

これはPythonによって行われます

累乗演算のコレクションの合計をタプルのリストとして表すとします。各タプルには、基数と指数の 2 つの整数が含まれます。たとえば、リストは2 4 + 3 5 + (−6) 3[(2,4),(3,5),(-6,3)]のべき乗の合計を表します。

sumOfPowers(nes, ps)1 つ以上のタプルのリストnes(つまりnesの形式[(a1,n1),...,(ak,nk)]) を最初の引数として取り、1 つ以上の素数のリストps(つまり の形式[p1,...,pm]) を 2 番目の引数として取る関数を実装します。この関数は、次の条件が満たされている限り、べき乗の合計の正しい結果を返す必要があります (たとえば、メモリと時間が無制限のコンピューターの場合)。

0 ≤ a1 n1 + ... + ak nk < p1 ⋅ ... ⋅ pm

2 番目のリストには別個の素数が含まれていると想定できます。最初の入力リストの数値に特定のパターンや関係があるとは思わないかもしれません。それらは任意の順序、任意のサイズにすることができ、因子を共有する場合と共有しない場合があります。実装は、非常に大きな入力に対して効率的に機能する必要があります

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

algorithm - m が素数でない場合、数値の逆モジュラス (a%m) を見つける方法

この質問の答えを検索しました。さまざまな便利なリンクがありましたが、アイデアを実装すると、間違った答えが返ってきました。

これは私が理解したものです:

m が素数の場合は、非常に単純です。任意の数 'a' の逆モジュラスは、次のように計算できます。inverse_mod(a) = (a^(m-2))%m

しかし、m が素数でない場合、m の素因数を見つけなければなりません。つまり、m= (p1^a1)*(p2^a2)*....*(pk^ak).ここで p1,p2,....,pk は m の素因数であり、a1,a2,....,ak はそれぞれの素因数です。力。

次に、計算する必要があります。

.......

次に、これらすべての剰余を中国剰余定理( https://en.wikipedia.org/wiki/Chinese_remainder_theorem )を使用して結合する必要があります。

m=1000,000,000 に対してこのアイデアを実装しましたが、それでも間違った答えが得られます。

これが素数ではない m=1000,000,000 の説明です

m= (2^9)*(5^9)ここで、2 と 5 は m の素因数です。

a は、m を法として逆数を計算する必要がある数です。

'e1' と 'e2' を計算するために、Extended Euclidean Algorithmを使用しました。 https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm

コードは次のとおりです。

しかし、これをすべて行った後、私は間違った答えを得ています。

中国剰余定理を理解している間に私が犯した間違いを説明し、指摘してください。

どうもありがとうございます。

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

haskell - 中国剰余定理 Haskell

中国剰余定理を解くことができる関数を Haskell で作成する必要があります。次の定義で作成する必要があります。

答えは次のようになります

私は全体的なアイデアを持っていると思いますが、それを書く知識がありません。私は、crt 関数が再帰的でなければならないことを知っています。タプルのリストを 2 つのリストのタプルに分割するヘルパー関数を作成しました。

この例では、次のようになります。

私が知る必要があるのは、最初のリストの各要素のリストを作成することだと思います。どうすればこれを始められますか?

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

highest - 次に高い 10 の倍数から合計を引く方法

したがって、合計が24であるとします。最も近い最高の10の倍数を見つけるためにコードが必要です。これはもちろん30になるので、 (30-24)を計算するコードが必要です。数が20の場合、最大の10の倍数に等しいため、20になります。次に、後で使用するために結果を保存する必要があります。