コンピュータサイエンス

コンピュータサイエンスの学生、研究者、実務家のためのQ&A

2
整数分解問題をNP完全問題に還元
NP-IntermediateとNP-Completeの関係を理解するのに苦労しています。ラドナーの定理に基づいたP!= NPの場合、NPには言語のクラスが存在するが、PまたはNP-Completeには存在しないことを知っています。NPの問題はすべてNP完全問題に還元できますが、疑わしいNPI問題(整数因数分解など)をNP完全問題に還元する例を見たことはありません。誰もこれまたは別のNPI-> NPC削減の例を知っていますか?

4
2つのアルゴリズムが入力に対して同じ結果を返すかどうかをどのように確認しますか?
すべての入力のセットが無限であるときに、2つのアルゴリズム(たとえば、マージソートとナイーブソート)がすべての入力に対して同じ結果を返すかどうかを確認するにはどうすればよいですか? 更新:一般的なケースでアルゴリズム的にこれを行うことがどのように不可能かを説明してくれたベンに感謝します。Daveの答えは、常に機能するとは限らないが、非常に効果的なアルゴリズムと手動(人間の機知と隠phorの対象)の両方の方法の素晴らしい要約です。


3
通常言語の単語数
ウィキペディアによると、任意の正規言語のためにLLLが存在定数λ1,…,λkλ1,…,λk\lambda_1,\ldots,\lambda_k及び多項式p1(x),…,pk(x)p1(x),…,pk(x)p_1(x),\ldots,p_k(x)ようにすべてのための数長さのワードの満たす方程式nnnsL(n)sL(n)s_L(n)nnnLLL sL(n)=p1(n)λn1+⋯+pk(n)λnksL(n)=p1(n)λ1n+⋯+pk(n)λkn\qquad \displaystyle s_L(n)=p_1(n)\lambda_1^n+\dots+p_k(n)\lambda_k^n。 言語は正規です(一致します)。 IFF Nも、そしてあるそれ以外の場合。L={02n∣n∈N}L={02n∣n∈N}L =\{ 0^{2n} \mid n \in\mathbb{N} \}(00)∗(00)∗(00)^*sL(n)=1sL(n)=1s_L(n) = 1sL(n)=0sL(n)=0s_L(n) = 0 しかし、私はと見つけることができません(これらは存在する必要があります)。以下のよう微分可能である必要がありかつ一定ではないが、それは何らかの形で波のように動作する必要があります、と私はあなたがおそらくのように加数の無限の数で終わることなく、多項式、指数関数であることを行うことができますどのように見ることができませんテイラー展開。誰でも私を啓発できますか?λiλi\lambda_ipipip_isL(n)sL(n)s_L(n)

5
相互作用はアルゴリズムよりも強力ですか?
私は、モットーの相互作用は Peter Wegnerのアルゴリズムよりも強力だと聞きました。この考え方の基本は、(古典的な)チューリングマシンは相互作用、つまり外界/環境との通信(入力/出力)を処理できないということです。 どうしてこんなことができるのでしょうか?チューリングマシンよりも強力なものはありますか?この物語の本質は何ですか?なぜそれほどよく知られていないのですか?

4
この有限グラフ問題は決定可能ですか?どの要因が問題を決定可能にしますか?
次の問題が決定可能かどうか、およびその発見方法を知りたい。私が見るすべての問題は、「はい」または「いいえ」と言うことができます。そのため、ほとんどの問題とアルゴリズムは、ここで提供されるいくつかを除いて決定できますか? 入力:Aは有限有向グラフととと頂点と 質問:ずに経路と初期頂点とASの最終頂点が存在として?v u G u vGGGvvvあなたはuuGGGあなたはuuvvv

3
ループが再帰よりも速いのはなぜですか?
実際には、再帰はループとして書くことができ(逆も同様です)、実際のコンピューターで測定すると、同じ問題に対してループが再帰よりも速いことがわかります。しかし、この違いをもたらす理論はありますか、それとも主に経験的ですか?

3
推論エンジンにとって統一がなぜそれほど重要なのですか?
私は自動定理証明 / SMTソルバー / 証明アシスタントを自分で学んでおり、ここからプロセスに関する一連の質問を投稿しています。 私は統一アルゴリズムについて読み続けています。 それは何で、なぜ推論エンジンにとってそれほど重要なのですか? なぜコンピューターサイエンスにとってこれほど重要なのですか?

4
リンクリストでクイックソートを使用しないのはなぜですか?
クイックソートアルゴリズムは、次のステップに分けることができます ピボットを識別します。 ピボットに基づいてリンクリストをパーティション分割します。 リンクリストを再帰的に2つの部分に分割します。 ここで、最後の要素を常にピボットとして選択すると、ピボット要素(最初のステップ)の識別に時間かかります。O(n)O(n)\mathcal O(n) ピボット要素を特定したら、そのデータを保存し、他のすべての要素と比較して、正しいパーティションポイントを特定します(2番目のステップ)。ピボットデータを保存するため、各比較には時間かかり、各スワップにはO(1 )時間かかります。したがって、n個の要素に対して合計でO(n )時間かかります。O(1)O(1)\mathcal O(1)O(1)O(1)\mathcal O(1)O(n)O(n)\mathcal O(n)nnn したがって、再帰関係は次のとおりです。 は O(n log n )です。これは、リンクリストを使用したマージソートと同じです。T(n)=2T(n/2)+nT(n)=2T(n/2)+nT(n) = 2T(n/2) + nO(nlogn)O(nlog⁡n)\mathcal O(n \log n) それでは、なぜリンクリストのクイックソートよりもマージソートが優先されるのでしょうか。

4
RSA暗号化がキー交換で一般的になったのはなぜですか?
これは簡単な質問です。暗号化またはその歴史についてはあまり知りませんが、RSAの一般的な用途は、対称キーを暗号化してキー交換を行い、より長いメッセージを送信することです(たとえば、iMessageの説明はこちら)。これは、Diffie-Hellman鍵交換(より古い(そして、私にとってはより簡単なように思える))の目的ではありませんか?ウィキペディアを見ると、両者とも特許を取得しているため、選択の責任はありませんでした。 明確にするために、公開鍵暗号化が可能であることが理論的に重要であるかどうかは尋ねません。私はそれがなぜ鍵交換を行うための実際の標準的な方法になったのかを尋ねています。(暗号作成者ではない人にとって、DHは実装しやすいように見えますが、使用されるグループの詳細にも結び付けられていません。)

3
nで割り切れる最大の合計
StackOverflowでこの質問をしましたが、ここがより適切な場所だと思います。 これは、アルゴリズムコースの概要からの問題です。 n個の正の整数を持つ配列があります(配列を並べ替えたり、要素を一意にする必要はありません)。示唆O (N )で割り切れる要素の最大和見つけるためのアルゴリズムをnと。aaannnO(n)O(n)O(n)nnn 例: = [ 6 、1 、13 、4 、9 、8 、25 ] 、N = 7。答えは56(要素と6 、13 、4 、8 、25)a=[6,1,13,4,9,8,25],n=7a=[6,1,13,4,9,8,25],n=7a = [6, 1, 13, 4, 9, 8, 25], n = 75656566,13,4,8,256,13,4,8,256, 13, 4, 8, 25 それはそれを見つけることは比較的簡単です動的プログラミングを使用して、残りで最大の和を格納0 、1 、2 、。。。、n − 1。O(n2)O(n2)O(n^2)0,1,2,...,n−10,1,2,...,n−10, 1, 2,..., n - 1 また、我々は要素の連続配列に注意を制限した場合、それはに最適なシーケンスを見つけるのは簡単だ時間、部分和を格納することによって、モジュロN:聞かせてS …

2
2つの通常言語の連結が明確になるのはいつですか?
言語と与えられた場合、すべての単語について、それらの連結が明確であるとしましょう。正確に1つの分解とおよび、そうでない場合はあいまいです。(このプロパティに確立された用語があるかどうかはわかりません。検索するのは難しいです!)簡単な例として、とそれ自体の連結はあいまいです()、ただし、とそれ自体の連結は明確です。AAABBBABABABw∈ABw∈ABw \in ABw=abw=abw = aba∈Aa∈Aa \in Ab∈Bb∈Bb \in B{ε,a}{ε,a}\{\varepsilon, \mathrm{a}\}w=a=εa=aεw=a=εa=aεw = \mathrm{a} = \varepsilon \mathrm{a} = \mathrm{a} \varepsilon{a}{a}\{\mathrm{a}\} 2つの標準言語の連結が明確であるかどうかを決定するアルゴリズムはありますか?

2
すべての「悪」正規表現に対して、悪ではない代替が存在しますか、または文法に悪魔がありますか?
どうやら、ReDos攻撃はいくつかの(そうでなければ有用な)正規表現の特性を悪用します...本質的にNFAによって定義されたグラフの可能なパスの爆発を引き起こします。 同等の「非悪」正規表現を記述することにより、このような問題を回避することは可能ですか?そうでない場合(したがって、文法はNFAによって実用的な空間/時間で処理できない)、どの構文解析アプローチがより良いでしょうか?どうして?

1
N体問題の解決不可能性は停止問題と同等ですか
任意の時間tでn体システムの状態を正確な精度で与えるために使用できる分析関数を生成できるn体問題に対する一般的な分析解はありません。ただし、解析関数が既知のn体システムの特殊なケースがいくつかあります。 同様に、任意のチューリングマシンの結果を予測できる一般的なアルゴリズムはありません。ただし、永久に停止または実行することを決定できる旋盤には多くの種類があります。 これら2つの結果は同等ですか?これらのいずれかの証明は、もう一方を意味しますか?停止の問題を解決できるマジックマシンは、n体システムの状態を正確に予測できますか?またはその逆に、n体問題の一般的な解析ソリューションにより、任意のチューリングマシンで停止する問題を決定できますか? これにどのようにアプローチするかについての私の最初の推測は、重力下のn体システムがチューリング完全であることを示すことです。宇宙がチューリング完全であり、本質的に重力下で動作する(および同様に動作する他のいくつかの力)ことを考えているのではないかと疑っていますが、これを証明する方法はわかりません。 しかし、n体問題の一般的な解析的解決法の欠如は、チューリング完全性とは無関係である可能性があると思いますが、そのアプローチは十分だとは思いません。 編集:他のいくつかの接線関連の質問を読んだ後、私は重力が動作している次元の数が質問に関連している可能性があることに気づきました。具体的には、3つの空間次元における重力について尋ねています。しかし、そのようなあなたは2次元で万能チューリングマシンと重力を作るために、少なくとも3つのルールを必要とするような事実与えられただけで逆法則だろう代わりに、逆二乗則のが得られていないが閉じた軌道、3次元の重力はチューリング完了ですが、2または1ではありません。∝1/r∝1/r \propto 1/r ∝1/r2∝1/r2 \propto 1/r^2

1
プッシュダウンオートマトンが特定の通常の言語を認識するかどうかは決定可能ですか?
2つのプッシュダウンオートマトンが同じ言語を認識するかどうかの問題は決定できません。プッシュダウンオートマトンが空の言語を認識するかどうかの問題は決定可能です。したがって、特定の有限言語を認識するかどうかも決定可能です。プッシュダウンオートマトンで受け入れられる言語が正規かどうかは決定できません。だが ... ...プッシュダウンオートマトンが指定された通常の言語を認識するかどうかは決定可能ですか? 答えがいいえの場合、与えられた通常の言語の星の高さが 111あれば問題は決定可能になりますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.