タグ付けされた質問 「time-complexity」

入力サイズで表された問題を解決するために必要な時間リソース(アトミック操作またはマシンステップの数)。アルゴリズム分析に関する質問の場合は、代わりに[runtime-analysis]タグを使用してください。計算が*常に*終了するかどうかに関する質問の場合は、代わりに[computability]タグを使用してください。時間の複雑性は、おそらく複雑性理論の最も重要なサブトピックです。

1
リーグの勝敗の順位が可能かどうかを確認する
あなたは試合スケジュールのある1対1のバスケットボールリーグを主催しています。リーグの最後に、各プレーヤーにそれぞれの勝敗記録を報告させます(同点はありません)が、予定された順位表が実際に可能かどうかを確認したいとします。 たとえば、4人のプレーヤー(Alice + Bob + Carol + Dave)がいて、スケジュールは単純なラウンドロビンです。報告された順位[ A: 3-0 B: 1-2 C: 1-2 D: 1-2]および[ A: 2-1 B: 1-2 C: 1-2 D: 2-1]は可能ですが、スタンディング[ A: 3-0 B: 0-3 C: 0-3 D: 3-0]はできません。 代わりに、スケジュールがアリス+ボブとキャロル+デイブの3対1の対戦であるとします。報告された順位[ A: 3-0 B: 0-3 C: 0-3 D: 3-0]が可能になりましたが、[ A: 3-0 B: 1-2 C: 1-2 D: 1- 2]はなくなります。 …

1
数値を2つの四角形として書き、数値の因数を等しく書くことは難しいですか?
ましょうと次のように:L1L1L_1L2L2L_2 L1={r:∃x,y∈Z such that x2+y2=r}L1={r:∃x,y∈Z such that x2+y2=r}L_1=\{r:\exists x,y \in \mathbb{Z} \text{ such that } x^2+y^2=r\} L2={(N,M):M&lt;N,∃1&lt;d≤M such that d|N}L2={(N,M):M&lt;N,∃1&lt;d≤M such that d|N}L_2=\{(N,M): M<N, \exists 1<d\leq M \text{ such that d|N} \} 主張L1≤PL2L1≤PL2L_1 \leq_P L_2 スケッチプルーフ かどうかを知りたい場合。r∈L1r∈L1r\in L_1 の整数解の数は、x2+y2=rx2+y2=rx^2+y^2=r g(r)=∑d|rχ(d)g(r)=∑d|rχ(d)g(r)=\sum_{d|r}{\chi{(d)}}ここで、χ(x)=sin(πx2)={1 when x≅1 mod 4−1 when x≅3 mod 40 when 2|xχ(x)=sin(πx2)={1 …

2
量子コンピュータは、古典的なコンピュータよりも線形代数を速く実行できますか?
十分な数の量子ビットを備えた量子コンピューターがあったとしたら、それを使用して、古典的コンピューターよりも高速に線形代数を実行できますか?どのようなスピードアップが期待できますか?だれかが線形代数の量子アルゴリズムを作成しましたか?それは実行時間ですか?理論的には、行列と行列の乗算などの演算は高度に並列化できますが、実際には、高速に実行される並列行列と行列の乗算を実装するには多くの作業が必要です。量子コンピューターは実用的な利点を提供しますか?

1
証明!完全に時間構成可能です
私達はちょうど先週、クラスで私たちの「タイム・施工」レッスンを終え、我々は、例えばのために、ことが示されたのためというマシンをチューリング(マルチテープ決定論)が存在する、すなわち、完全にタイム構築可能です与えられました、正確にステップ後に停止し、その証明できるかどうかを尋ねるだけ完全に時間構成可能です(そして次に進みます)。んk、 2んんk、2んn^k, 2^nんんnf(n )f(ん)f(n)n !ん!n! 証明がどのように行われるかはわかりませんが、はを使用して(完全に)時間構成可能であることを示したため、ある程度時間構成可能性、または階乗を含むアイデンティティを使用する必要があると考えています。んkんkn^kんkんkn^kんk= n + ∑i = k − 1i = 1(n − 1 )n私んk=ん+Σ私=1私=k−1(ん−1)ん私n^k = n + \sum_{i=1}^{i=k-1}(n - 1)n^i ヒントも本当にありがたいです。前もって感謝します。

1
最大スタッキング高さの問題
次の問題は以前に調査されましたか?はいの場合、それを解決するためにどのようなアプローチ/アルゴリズムが開発されましたか? 問題(「最大スタッキング高さの問題」) 与えられたのポリゴン、その安定した、非オーバーラップ配置見つける彼らの積載高さを最大限に重力の影響の下で固定床の上を。んんn 例 3つのポリゴン: 積み重ねの高さが異なる、非常に多くの安定した重なり合わない配置の3つ: 明確化 すべてのポリゴンは均一な質量と等しい密度を持っています 摩擦はゼロです 重力が下向き方向のすべての点に作用しています(つまり、力のベクトルはすべて平行です) 構成が不安定な平衡点にある場合、構成は安定しているとは見なされません(たとえば、図の緑色の三角形は、バランスポイントの左側と右側の質量が等しい場合でも、どの頂点でも平衡化できません)。 さらに上記の点を明らかにする:ポリゴンが(「転倒」)が不安定であると考えられる場合を除き、それは少なくとも一点にかかっている厳密に左 と少なくとも一点右に厳密に(この定義は大幅シミュレーションを簡略化しその重心のと特に、配置が安定しているかどうかを評価するために位置統合などが不要になります。 「物理的」な形の問題は、ほとんどの場合にのみ解決できる継続的な問題です。アルゴリズムで取り組むことができる離散問題を取得するには、ポリゴン頂点と配置でのそれらの配置の両方を適切なラティスに制約します。 ノート あらゆる種類の総当たり攻撃は明らかに実行不可能です。ラティス内のポリゴンの配置に厳格な制約があっても(限られた領域の「格子空間」を提供するなど)、複雑さはいくつかのポリゴンを超えると単純に爆発します。 単一のポリゴンを削除すると構成が不安定になり、そのような配置は、すべての中間ステップが安定していることに依存しているアルゴリズムでは到達できないため、配置を構築するのは簡単です。 問題は少なくともNPのにおいがするので、頂点の総数がEXPTIMEで完了する可能性が高いため、ヒューリスティックスでもかなりの関心があります。希望を与えることの1つは、ほとんどの人間が例の3番目の配置が最適であることを認識するという事実です。

2
他の2つの間に厳密にBig Ohの複雑性が常に存在するか
私は漸近分析について学んでいて、他の一般的なものの間で生きているエキゾチックな複雑さを見てきました。たとえば、「log log n」は厳密に1とlog nの間です。他の2つの間の複雑さを常に見つけることができるのかと疑問に思います。 具体的には、O(f)⊂O(g)の関数fおよびgについて、O(f)⊂O(h)⊂O(g)のようなhが常に存在するか? これは宿題ではありません。誰かが知っているなら、私はただ興味があります。

2
Shorのアルゴリズム速度
私は生まれつきのコンピュータサイエンスの学者であり、整数分解を含む論文を書くように求められています。結果として、私は量子コンピューター上のショーのアルゴリズムを調べなければなりません。 他のアルゴリズムについては、特定の入力サイズに対するアルゴリズムの命令数を計算するための特定の方程式を見つけることができました(そこから、特定の速度のマシンでの計算に必要な時間を計算できました)。ただし、Shorのアルゴリズムの場合、最も複雑なのはその複雑さですO( (log N)^3 )。 Big-O表記から速度/実際の複雑さを見つける方法はありますか?そうでない場合、私が欲しいもの、またはそれを見つける方法を教えてくれる誰かがいますか?

1
NEXP =Σ
含意が成り立つかどうかはわかっていますか?N E X P = Σ2⟹N E X P = M ANEバツP=Σ2⟹NEバツP=Mあ\mathsf{NEXP} = \Sigma_2 \implies \mathsf{NEXP} = \mathsf{MA} (この質問は、よく知られているからヒントを得ています。)N E X P ⊆ P / P O LのY ⇔ N E X P = M ANEバツP⊆P/poly⇔NEバツP=Mあ\mathsf{NEXP} \subseteq \mathsf{P/poly} \Leftrightarrow \mathsf{NEXP} = \mathsf{MA}

1
証明または反駁:BPP(0.90,0.95)= BPP
:私は本当にあなたの証明のヘルプまたは以下の請求反論たいBPP(0.90,0.95)=BPPBPP(0.90,0.95)=BPPBPP(0.90,0.95)=BPP。計算の複雑さの理論では、有界誤差確率多項式時間を表すBPP は、多項式時間の確率的チューリングマシンで解ける決定問題のクラスであり、最大1のエラー確率を持ちます。1313\frac{1}{3}すべてのインスタンスで 3。。BPP=BPP(13,23)BPP=BPP(13,23)BPP=BPP(\frac{1}{3},\frac{2}{3}) エラーの確率がより小さい場合ので、セットのいずれかが、他のサブセットであることは、即時ではないそれよりも小さくする必要はない、それがより大きい場合はより大きい必要はありません。0.90.90.91313\frac{1}{3} 0.9052323\frac{2}{3}0.9050.9050.905 私は主張を証明するためにチェルノフの不等式を使おうとしていますが、正確な方法はわかりません。私は本当にあなたの助けをお願いします。私が使用できるこれらの関係に関する一般的な主張はありますか?


1
log(n)が空間構成可能な関数である理由
ウィキペディアの「構築可能な機能」によると、 複雑性理論、時間構成可能関数は、関数であるFから自然数という特性を有する自然数のF(nは)から構成することができるNによってチューリングマシンオーダーの時間でF(N)。 しかし、は自然数にマップするのではなく、実数にマップします。log(n)log⁡(n)\log\left(n\right) それにもかかわらず、なぜはスペース構築可能な関数なのですか?log(n)log⁡(n)\log\left(n\right)

1
昨日のStackOverflowの停止に続いて-正規表現のマッチングは本当に難しいですか、それとも実装は単に非効率的ですか?
昨日、StackOverflowが30分ダウンしました。その後、彼らはそれについてブログの投稿を書き、問題が正規表現マッチングの予想外に高い複雑さから生じたことを詳述しました。 つまり、正規表現a+bは、文字列aaaaaaaaaaaaaacで実行される場合、バックトラックを使用するため、時間で実行されますは文字数です。O (ん2)O(ん2)O(n^2)んんna 次のPythonコードで問題を再現できます。私のコンピューターでは、実行に4秒以上かかります。 import re, time start = time.time() re.findall(r'\s+$', ' '*20000 + 'x') print(time.time() - start) これは私にとって非常に驚きました。私が考えたのだろう必要があるだろうこれ、正規表現からDFAを構築し、それを通じて、希望の文字列を実行することにより、例えば、正規表現マッチャがより効率的に動作することを考えていると思います(DFA工事は含みません)。O (n )O(ん)O(n) (たとえば、Cormen、Leiserson、Rivestによる本のアルゴリズムの紹介は、Knuth-Morris-Prattアルゴリズムを導入する方法について同様のアルゴリズムを通過します)。 私の質問:アルゴリズムを許可しない正規表現マッチングに本質的に難しいものはありますかO (n )O(ん)O(n)、または単に非効率的な実装(Pythonで、StackOverflowが使用するものなど)について話しているだけですか?

2
Schönhage–Strassenの乗算アルゴリズムの変換が安価なのはなぜですか?
Schönhage-Strassenの乗算アルゴリズムは、サイズの乗算を回すことによって動作しますNNN サイズの多くの乗算に l g(N)lg(N)lg(N)数論変換と再帰を使用します。少なくとも私はそれがそうであると思います。他にいくつかの賢さがあるからです。正確に要約するのに十分理解していません。それで終わりますO (N⋅ リットルG(N)⋅ リットルG(l g(N)))O(N⋅lg(N)⋅lg(lg(N)))O(N \cdot lg(N) \cdot lg(lg(N))) 時間。 数論変換は、有限体で行われることを除いて、離散フーリエ変換とまったく同じです。F2N+ 1F2N+1F_{2^N+1} 整数を法として 2N+ 12N+12^N+1。これにより、フーリエ変換には1の根の乗算が多くなるため、演算が大幅に安価になります。F2N+ 1F2N+1F_{2^N+1}の結束のルーツはすべて2の累乗なので、シフトするだけです!また、整数は、浮動小数点の複素数よりもはるかに扱いやすいです。 とにかく、私を混乱させるのは F2N+ 1F2N+1F_{2^N+1}とても大きいです。からランダムな要素を与えるとF2N+ 1F2N+1F_{2^N+1}、 それはとります O (N)O(N)O(N)それを指定するビット。したがって、2つの要素を追加するにはO (N)O(N)O(N)時間。そして、DFTは多くの追加を行います。 Schönhage–Strassenは入力を Nl g(N)Nlg(N)\frac{N}{lg(N)} とのグループ l g(N)lg(N)lg(N)ビット。これらのグループは、F2N+ 1F2N+1F_{2^N+1}それが変形することを。DFTの各パスにはO (Nl g(N))O(Nlg(N))O(\frac{N}{lg(N)}) 足し算/引き算、そして O (l g(Nl g(N)))O(lg(Nlg(N)))O(lg(\frac{N}{lg(N)}))パス。だから加算加算に基づいてO (N)O(N)O(N) これらのすべての追加のコストは O(NNlg(N)lg(Nlg(N)))O(NNlg(N)lg(Nlg(N)))O(N \frac{N}{lg(N)} lg(\frac{N}{lg(N)}))、これは漸近的に同じです O(N2)O(N2)O(N^2)。 それより少し上手くいくことができます...値が非常に小さいため、追加は非常にまばらです。最初のパスの追加は本当にコストがかかりますO(lg(N))O(lg(N))O(lg(N)) それぞれ、2番目のパスのコスト 21O(lg(N))21O(lg(N))2^1 …


2
最大セグメントで共有されるポイントを見つける
与えられた: NNN 順序付けられた整数のセグメント(配列)、整数は −K−K-K に KKK。 例: Segment 1: [-2,-1,0,1,2,3] Segment 2: [1,2,3,4,5] Segment 3: [-3,-2,-1,0,1] それらを[min、max] ---として表すことができます---同等です: Segment 1: [-2,3] Segment 2: [1,5] Segment 3: [-3,1] セグメントの最大数に属する整数を見つけるにはどうすればよいですか?この例では、1です。 私は最も効率的なアルゴリズムを探します。

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