タグ付けされた質問 「primes」

4
ハッシュ関数でmodとして素数を使用するのが最適なのはなぜですか?
1〜100のキー値のリストがあり、それらを11個のバケットの配列に整理したい場合、mod関数を作成するように教えられました。 H=kmod 11H=kmod 11 H = k \bmod \ 11 これで、すべての値が9行に次々と配置されます。たとえば、最初のバケットには0、11、22 0,11,22…0,11,22…0, 11, 22 \dotsます。2番目では1,12,23…1,12,23…1, 12, 23 \dotsなどがあります。 悪い子になって、ハッシュ関数として非プライムを使用することにしたとしましょう-テイク12.ハッシュ関数の使用 H=kmod 12H=kmod 12 H = k \bmod \ 12 値をハッシュテーブルにつながる0,12,24…0,12,24…0, 12, 24 \dots 最初のバケットで、1,13,25…1,13,25…1, 13, 25 \dots等秒でのように。 本質的には同じものです。衝突を減らさなかったし、素数ハッシュコードを使用して物事をうまく分散させることもしなかったので、それがどのように有益であるかわかりません。

3
AKSの素数性テストが実際に他のテストよりも高速になるのはいつですか?
私はそれについて学ぶときにAKSの素数性テストがどのように解釈されるべきか、例えばPRIMES⊆Pを証明するための帰結、またはコンピューターでの素数性テストのための実際の実用的なアルゴリズムのアイデアを得ようとしています。 テストには多項式ランタイムがありますが、高度であり、可能な限り高い定数があります。それでは、実際には、どので他の素数性テストを上回っていますか?ここで、は素数の桁数であり、「surpass」は典型的なコンピューターアーキテクチャでのテストのおおよその実行時間を指します。nnnnnnn 私は、機能的に比較可能なアルゴリズム、つまり、正確さのために推測を必要としない決定論的なアルゴリズムに興味があります。 さらに、テストのメモリ要件を考えると、他のテストよりもこのようなテストを使用していますか?

5
素数を使用したデータ圧縮
私は最近、データのタイプや形式に関係なく、ランダムデータセットを常に50%以上効率的に圧縮すると主張する次の興味深い記事に出会いました。 基本的に、素数を使用して4バイトのデータチャンクの表現を一意に構築します。これは、すべての数が素数の一意の積であるため、簡単に解凍できます。これらのシーケンスを素数に関連付けるために、辞書を使用します。 私の質問は: 著者が示唆しているように、これは本当に実現可能ですか?論文によると、その結果は非常に効率的で、常にデータをより小さなサイズに圧縮します。辞書のサイズは膨大ではないでしょうか? これを使用して、同じアルゴリズムを使用して圧縮データを繰り返し再圧縮することはできませんか?このような技術(圧縮データをできるだけ多く再圧縮し、ファイルサイズを劇的に削減する)は不可能であることは明らかであり、実証されています。実際、すべてのランダムデータのセットと圧縮データの間に全単射はありません。なぜこれが可能だと感じるのでしょうか? 技術がまだ完全ではない場合でも、明らかに最適化および強力な改善が可能です。なぜこれは広く知られていません/研究されていないのですか?確かにこれらの主張と実験結果が真実であれば、これはコンピューティングに革命をもたらすことができなかったでしょうか?

2
なぜ大きな整数を因数分解するのが難しいと考えられますか?
私はどこかで、最も効率的なアルゴリズムが時間で因子を計算できることを読みましたが、私が書いたコードは、除算とモジュラスの速さに応じて、または場合によってはです。どこかで誤解したことは確かですが、どこにあるのかわかりません。擬似コード形式で記述しました。O(exp((64/9⋅b)1/3⋅(logb)2/3)O(exp⁡((64/9⋅b)1/3⋅(log⁡b)2/3)O(\exp((64/9 \cdot b)^{1/3} \cdot (\log b)^{2/3})O(n)O(n)O(n)O(nlogn)O(nlog⁡n)O(n \log n) function factor(number) -> list factors = new list if number < 0 factors.append(-1) number = -number i = 2 while i <= number while number % i == 0 factors.append(i) number /= i i++ return factors

1
PまたはNP完全であることがわかっている区間に素数があるかどうかを判断していますか?
stackoverflowのこの投稿から、数値の間隔をふるいにかける比較的高速なアルゴリズムがあり、その間隔に素数があるかどうかを確認しました。ただし、これは、(間隔に素数が存在するかどうか)の全体的な決定問題がPにあることを意味しますか?(私は読んでいないその投稿に対する多くの答えがあったので、この質問が重複または不要)。 一方では、間隔が十分に大きい場合(たとえば)、バートランドの仮説のようなものが適用され、この間隔には間違いなく素数があります。ただし、2つの素数の間に任意の大きなギャップがあることも知っています(たとえば。 [ N !、N !+ N ][ N、2 N][N、2N][N,2N][ N!、N!+ N][N!、N!+N][N!,N!+ N] 決定問題がPIにある場合でも、対応する検索問題も扱いやすいため、バイナリ検索を実行するときに既知の素数の分布に関して同じプロパティを使用できない場合があります。

3
値をチェックするのは複雑で理論的に難しいですか?
プライム・カウント機能降格、、以下の素数の数として定義されるかに等しい。xπ(x )π(バツ)\pi(x)バツバツx 次のようにから決定問題を定義できます。π(x )π(バツ)\pi(x) 2 進で記述された2つの数値と与えられた場合、かどうかを判断します。nはπ (X )= Nバツバツxnnnπ(x )= nπ(バツ)=n\pi(x) = n 今日、友人と私はこの問題について話していました。この問題には擬似多項式時間アルゴリズムがあります- 各ステップで試行除算を使用してまでカウントし、数が素数であるかを確認し、それがと等しいかどうかを確認します。問題はPSPACEにもあります。これは、先ほど説明したアルゴリズムを実装して、多項式補助空間のみを使用できるためです。nバツバツxnnn ただし、この問題をより低い複雑度のクラスに配置する方法を見つけるのに苦労しています。私は問題の多項式時間検証を構築する方法を見ることができないので、それがNPにあるかどうかはわかりません、そしてそれを多項式階層に入れる方法をまったく考えることができません。 この問題に最も適切な複雑度クラスは何ですか? ありがとう!

3
フェルマー素数検定の代わりにミラーラビンが選ばれるのはなぜですか?
Miller-Rabinの証明から、数値がFermat素数性検定に合格した場合、同じ基数(証明の変数)でMiller-Rabin検定にも合格する必要があります。そして、計算の複雑さは同じです。aaa 以下は、Fermat素数テストからのものです。 カーマイケル数は素数よりもかなりまれですが、1フェルマーの素数検定が上記の形式で使用されないことが多いので十分です。代わりに、Baillie-PSW、Miller-Rabin、Solovay-Strassenなど、Fermatテストの他のより強力な拡張機能がより一般的に使用されます。 Miller-Rabinの利点は何ですか?なぜそれがFermat素数テストよりも強力であると言われているのですか?

2
nの除数で最小の整数を効率的に計算する
この問題に取り組むために、私は最初にそれを観察しました ϕ(pe11 pe22⋯ pekk)=(e1+1)(e2+1)⋯(ek+1)ϕ(p1e1 p2e2⋯ pkek)=(e1+1)(e2+1)⋯(ek+1)\phi(p_1^{e_1} \space p_2^{e_2} \cdots \space p_k^{e_k}) = (e_1 + 1)(e_2 + 1)\cdots(e_k +1) ここで、ϕ(m)ϕ(m)\phi(m)は約数(必ずしも素数ではない)の約数ですmmm。mmmがϕ(m)=nϕ(m)=n\phi(m) = nとなるような最小の整数の場合、 ϕ(m)=nϕ(m)=n\phi(m) = n (e1+1)(e2+1)⋯(ek+1)=n(e1+1)(e2+1)⋯(ek+1)=n(e_1 + 1)(e_2 + 1)\cdots(e_k +1) = n ここで、∏ i p e i iが最小になるように選択する必要があります。pの選択は簡単です-それらは昇順の単なる素数です。eieie_i∏ipeii∏ipiei\prod_{i} p_i^{e_i}ppp しかし、を選択するための最初の考えeieie_iは正しくありませんでした。私は単にnnn因数分解し、降順で因数をソートして1を引くことができると思いました。ほとんどの場合、これはうまく機能します。たとえば、n=15n=15n = 15除数の最小の整数は次のとおりです。 15 = (4 + 1 )、 (2 + …


3
Baillie–PSWテストの詳細
MathematicaがPrimeQ関数(素数性をテストする)にBaillie–PSWテストを使用していることは明らかであり、私がMathematicaのドキュメントで読んだように、トライアル除算から始まり、ベース2と3のMiller–Rabin、そしてルーカスの疑似プライムテストです。私の質問は: ベース2と3を削除し、ランダムベースのみを使用できますか? また、ウィキペディア以外に、この素​​数性テストについて良い参考文献を提案できる人はいますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.