問題タブ [primality-test]

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 に答える
564 参照

algorithm - Miller-Rabin 方式の実装で予測できない出力

私はSchemeが初めてです。PLTスキームを使用して、ラビンミラーアルゴリズムの確率的バリアントを試して実装しました。私はそれが確率的であることを知っていますが、ほとんどの場合、間違った結果を得ています。私は C を使用して同じことを実装しましたが、うまくいきました (試行に失敗したことはありません)。デバッグ中に期待どおりの出力が得られますが、実行すると、ほとんどの場合、間違った結果が返されます。Wikipediaのアルゴリズムを使用しました。

また、Scheme で正しい方法でプログラミングしていますか? (私が使用するループ部分の抜け出しについてはよくわかりませんcall/cc。あるサイトで見つけて以来、それを使用しています。)

前もって感謝します。

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

haskell - Haskell の学習: 一見循環的なプログラム - 説明を手伝ってください

私は現在、Doets と Van Eijck による「The Haskell Road to Logic, Math, and Programming」という本を読んでいます。私はこの本まで関数型プログラミング言語に触れたことがないので、覚えておいてください。

本のまだ早い段階で、素数性テストの次のコードが提供されます。

ldp が primes1 を呼び出し、それが prime を呼び出し、それが ldp を再度呼び出すという、一見循環的なプログラミングが行われています。この本は、プログラムが実行されて終了する理由についての説明としてこれを提供していますが、

ldp は、素数のリストである primes1 を呼び出します。これは「怠惰なリスト」の最初の例です。リストは、さらに処理するために必要なリストの部分のみを計算するため、「レイジー」と呼ばれます。primes1 を定義するには、素数性のテストが必要ですが、そのテスト自体が関数 LD の観点から定義されており、これが primes1 を参照します。輪になって走り回っているようです。この円は、2 の素数性テストを回避することで非悪性にすることができます。2 が素数であることが与えられた場合、3 が素数であるという LD チェックで 2 の素数性を使用できます。そして走っている

私はこの説明を理解していると思いますが、誰かが素人の言葉で説明できれば非常にありがたいです:

  1. 「怠惰なリスト」とは何ですか?また、このコンテキストでどのように適用されますか?
  2. 2 が素数であることを知っていると、どのようにしてプログラムが悪意を持たなくなるのでしょうか?

どんな答えでも大歓迎です。

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

algorithm - ミラーラビンで混乱

私自身の演習として、ミラーラビン素検定を実装しています。(SICPを介した作業)。私はフェルマーの小定理を理解し、それをうまく実行することができました。ミラーラビン素検定で私がつまずくのは、この「1modn」ビジネスです。1 mod n(nはランダムな整数)は常に1ではありませんか?ですから、整数値を扱うとき、私の考えでは「1 mod n」は常に1であるため、「nを法とする1の自明でない平方根」が何であるかについて混乱しています。私は何が欠けていますか?

0 投票する
6 に答える
33159 参照

algorithm - 指定された数値が haskell の素数かどうかを判断する

そのため、特定の数値が Haskell で素数であるかどうかを確認するために、次の関数を考案しました (最初の素数が 2 であると想定しています)。

いくつかの数で割り切れる場合でも、評価を継続するという明らかな落とし穴があります:(。リスト内包表記を使用して、複数の解が見つかったときに評価を「カット」する適切な方法はありますか?

また、他にどの実装を試しますか? 私はここでパフォーマンスを探しているわけではありません。同じことを行う他の「ハスケル」の方法があるかどうかを確認しようとしているだけです。

0 投票する
13 に答える
189079 参照

algorithm - 素数の平方根を調べて、それが素数であるかどうかを判断するのはなぜですか?

数が素数であるかどうかをテストするには、なぜその数の平方根までしか除算できないかどうかをテストする必要があるのでしょうか。

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

c++ - スキームまたはC++でのAKS素数性テストの実装

私は素数テストアルゴリズムについて読んでいて、AKS素数性テストを見つけました。このアルゴリズムはSchemeまたはC++で実装できますか?

誰かがAKSテストを実装しようとしましたか?

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

c++ - 128 ビット Miller Rabin 素数テスト

ミラー・ラビン素数検定を大量に実装したかったのです。C++ でこのような膨大な数を処理する方法を知りたかったのです。これらの大きな数を保存および処理する特別な関数を作成する必要がありますか?そうしないと、自動的に処理されますか?

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

primes - 10^n + k 形式の数の素数判定

Nは約1000で、K は非常に小さい (500 未満)。これらの数値の素数をテストしたいと思います。現在、私はベース 2 によるフェルマーの検定を使用しており、その前に小さな因子 (<10000) をチェックしています。

ただし、これは私の目的にはかなり遅いです。それより速いアルゴリズムはありますか?この特殊なフォームをどうにか悪用することはできますか?

また、2 つの数値が K のみ異なる場合、これら 2 つの数値をもう少し早くテストすることは可能でしょうか?

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

c++ - 多数が素数であるか合成数であるかを決定論的にチェックしますか?

大きな(10 200のような)数を素数性テストするアルゴリズムを探しています。良いアルゴリズムはありますか?

理想的には、確率論的ではないアルゴリズムを好みます。

注:数字は50桁以上200桁未満です。

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

c++ - 大きな数字はどうですか?(素数性テスト)

これは「実際の」タスクであり、任意の言語(C / C ++など)で記述できますか?

だから、私の仕事は50桁を超える長さの乱数を「生成」することです(最大= 200)?

次に、素数性テストでこの数を確認する必要があります。

それで、このタスクは「本物」であり、どれだけの時間/リソースを消費するのでしょうか?

別の方法は、特別なクラスから素数または他の数を生成することです(どのクラスを使用できますか?)