コンピュータサイエンス

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


2
多項式に関する問題の決定可能性
私は次の興味深い問題に遭遇しました:を実数体上の多項式とし、それらの係数がすべて整数である(つまり、これらの多項式の有限の正確な表現がある)とします。必要に応じて、両方の多項式の次数が等しいと仮定する場合があります。私たちはで表すと(RESP。x_q)多項式の一部(実数または複素数)ルートの最大絶対値P(それぞれQ)。プロパティx_p = x_qは決定可能ですか?p,qp,qp,qxpxpx_pxqxqx_qpppqqqxp=xqxp=xqx_p = x_q そうでない場合、このプロパティは、制限された多項式の一部のファミリーに適用されますか?この問題が発生する状況では、多項式は行列の特性多項式であり、それらの根は固有値です。 多項式の根/固有値を計算するためのいくつかの数値アルゴリズムを知っていますが、これらのアルゴリズムの出力は概算にすぎないため、ここでは役に立たないようです。ここではコンピュータ代数が役立つように思えますが、残念ながらその分野の知識はほとんどありません。 私はこの問題の詳細な解決策を探しているわけではありませんが、解決策を探すための直感とアイデアは役に立ちます。 前もって感謝します。

2
正方形の色多項式
正方形、ABCDについて考えてみましょう。直感的には、色彩多項式はであり、利用可能な色があるように思えました。λ(λ−1)(λ−1)(λ−2)λ(λ−1)(λ−1)(λ−2)\lambda(\lambda - 1)(\lambda - 1)(\lambda - 2)λλ\lambda つまり、Aの色を選択できる方法があり、BとDの色を選択するつの方法(BとDがAに隣接している)と色の方法があります。 Cが選ばれるために。λλ\lambdaλ−1λ−1\lambda - 1λ−2λ−2\lambda - 2 ただし、分解定理(スライド47、例11.33)を使用して、正方形を長さ3のパスと三角形のパスに分解すると、最初の推論が間違っていることがわかります。 私の考えのどこが悪いのか教えてください。

1
DFSとBFSがまったく同じ順序でノードを処理するようにするグラフ
一部のグラフでは、DFSとBFSの検索アルゴリズムは、ノードが同じノードで開始する場合、まったく同じ順序でノードを処理します。2つの例は、パスであるグラフと星型のグラフ(任意の数の子を持つ深さ木)です。このプロパティを満たすグラフを分類する方法はありますか?111

2
多数の副問題を伴う動的プログラミング
多数の副問題がある動的プログラミング。だから私はインタビューストリートからこの問題を解決しようとしています: グリッド・ウォーキング(50点のスコア) あなたはに位置しているの位置に次元グリッド。グリッドの次元は)です。1つのステップで、次元のいずれかを1つ前または後ろに歩くことができます。(したがって、常に可能な異なる動きがあります)。どの時点でもグリッドを離れないように、ステップをいくつ実行できますか?あなたは、任意のためならば、グリッドを離れる、どちらかまたは。(X 1は、xは2、... 、xはN)(D 1、D 2、... 、D N N 2 N M X I 、X I ≤ 0 X I > DのIをNNN(x1,x2,…,xN)(x1,x2,…,xN)(x_1,x_2,\dots,x_N)(D1,D2,…,DN(D1,D2,…,DN(D_1,D_2,\dots,D_NNNN2N2N2NMMMxixix_ixi≤0xi≤0x_i \leq 0xi>Dixi>Dix_i > D_i 私の最初の試みは、このメモ化された再帰的な解決策でした: def number_of_ways(steps, starting_point): global n, dimensions, mem #print steps, starting_point if (steps, tuple(starting_point)) in mem: return mem[(steps, tuple(starting_point))] val = 0 if …

2
された
だから私は声明を証明するためにこの質問を持っています: ...O(n)⊂Θ(n)O(n)⊂Θ(n)O(n)\subset\Theta(n) 私は私の心の中で、これは意味がないと私はそれがかなりいることであるべきだと思うだけであること、それを証明する方法を知っている必要はありません。Θ(n)⊂O(n)Θ(n)⊂O(n)\Theta(n)\subset O(n) 私の理解では、あるよりも、何も悪いことしないすべての関数の集合であるNながらΘは、(N )なしもっとうまくすべての機能のセットと、nよりも悪くないです。O(n)O(n)O(n)nnnΘ(n)Θ(n)\Theta(n) これを使用して、定数関数の例をと考えることができます。この関数は、nが十分に大きな数に近づいてもnより悪くないので、確かにO (n )の要素になります。g(n)=cg(n)=cg(n)=cO(n)O(n)O(n)nnnnnn しかし、同じ関数の要素ではないΘ (N ) gがより良好行うないようにN大きいため、N以来... G ∈ O (N )およびG ∉ Θ (N )、次いで、O (N )∉ Θ (N )gggΘ(n)Θ(n)\Theta(n)nnnnnng∈O(n)g∈O(n)g \in O(n)g∉Θ(n)g∉Θ(n)g \not\in \Theta(n)O(n)∉Θ(n)O(n)∉Θ(n)O(n)\not\in\Theta(n) それで問題はおそらく間違っていますか?私はその仮定をすることは危険であると学びました、そして通常私は何かを逃しました、私はそれがこの場合に何であるかもしれないか見ることができません。 何かご意見は ?どうもありがとう..

1
絞り込みタイプの推測
職場では、動的言語に関する型情報を推論する必要があります。次のように、ステートメントのシーケンスをネストされたlet式に書き換えます。 return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 一般的なタイプ情報から始めて、より具体的なタイプを推測しようとしているので、自然な選択は絞り込みタイプです。たとえば、条件演算子は、trueブランチとfalseブランチの型の和集合を返します。単純なケースでは、非常にうまく機能します。 ただし、次のタイプを推測しようとしたときに、思わぬ障害に遭遇しました。 function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
選択アルゴリズムのスペースに制限はありますか?
整数の配列で番目に大きい要素を見つけるためのよく知られた最悪の場合の選択アルゴリズムがあります。それは中央値中央値アプローチを使用して十分なピボットを見つけ、入力配列を所定の位置に分割し、再帰的に番目に大きい要素の検索を続けます。O(n)O(n)O(n) kkkkkk 入力配列に触れることが許可されなかった場合、時間で番目に大きい要素を見つけるためにどのくらい余分なスペースが必要になりますか?余分なスペースで番目に大きい要素を見つけても、実行時の維持できますか?たとえば、最大または最小の要素を見つけるには、時間とスペースが必要です。 kkkO(n)O(n)O(n)kkkO(1)O(1)O(1)O(n)O(n)O(n)O(n)O(n)O(n)O(1)O(1)O(1) 直感的に、空間よりも優れているとは思えませんが、その証拠はありますか?O(n)O(n)O(n) 誰かが参照を指すか、番目の要素が時間でスペースを見つける必要がある理由を議論することができますか?⌊n/2⌋⌊n/2⌋\lfloor n/2 \rfloorO(n)O(n)O(n)O(n)O(n)O(n)

1
トップのSATソルバーは簡単な数値を因数分解できますか?
最新のSATソルバーは、SATインスタンスの多くの実例を解決するのに非常に優れています。ただし、ハードなものを生成する方法はわかっています。たとえば、因数分解からSATへの削減を使用し、RSA番号を入力として指定します。 これは問題を提起します:私が因数分解の簡単な例を取るならどうでしょうか。ビットでつの大きな素数をとる代わりに、ビットで素数を、ビットで素数q をとると、とエンコードして SATインスタンスとして。は、要素の1つが非常に小さいため、ブルートフォース検索またはふるい法で簡単に計算できる数です。ファクタリングからSATへの標準的な削減を伴う最新のSATソルバーもこの構造を採用しますか?n/2n/2n/2ppplognlog⁡n\log nn/lognn/log⁡nn/\log nN=pqN=pqN = pqFACTOR(N)FACTOR(N)\mathrm{FACTOR}(N)NNN SAT-ソルバー率トップことができますすばやく?N=pqN=pqN = pq|p|=logn|p|=log⁡n|p| = \log n

1
修正されたBorůvkaのアルゴリズムのより厳密な分析
Borůvkaのアルゴリズムは、グラフのスパニングツリー最小を計算するための標準的なアルゴリズムの一つであると。G=(V,E)G=(V,E)G = (V,E)|V|=n,|E|=m|V|=n,|E|=m|V| = n, |E| = m 擬似コードは次のとおりです。 MST T = empty tree Begin with each vertex as a component While number of components > 1 For each component c let e = minimum edge out of component c if e is not in T add e to T …

2
ベクトルの合計の最大成分を最小化
この最適化問題について何か学びたい:負でない整数ai,j,kai,j,ka_{i,j,k}について、式を最小化する関数見つけるfff maxk∑iai,f(i),kmaxk∑iai,f(i),k\max_k \sum_i a_{i,f(i),k} 別の定式化を使用した例では、より明確になる場合があります。次のような一連のベクトルのセットが与えられます。 { {(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)}, {(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)}, {(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)} } 各セットから1つのベクトルを選択して、それらの合計の最大成分が最小になるようにします。たとえば、 (1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + …

1
ランダムグラフのクリーク数
(Gilbertによる)n個のノードを持つランダムグラフファミリーがあります。可能な各エッジは、確率pでG (n 、p )に独立して挿入されます。ましょX kはサイズのクリークの数であり、KにおけるG (N 、P )。G (n 、p )G(n,p)G(n, p)んnnG (n 、p )G(n,p)G(n, p)pppバツkXkX_kkkkG (n 、p )G(n,p)G(n, p) 私が知っている、しかしどうやってそれを証明するのですか?E( Xk)= ( nk) ⋅P( k2)E(Xk)=(nk)⋅p(k2)\mathbb{E}(X_k)=\tbinom{n}{k}\cdot p^{\tbinom{k}{2}} どのように表示するについてのn → ∞の?そして、どのように表示することE(X C ⋅ ログ2 N)→ 0のためのN → ∞と固定、任意の定数をC > 1?E( Xログ2ん)≥ 1E(Xlog2⁡n)≥1\mathbb{E}(X_{\log_2n})\ge1n → ∞n→∞n\to\inftyE( XC ⋅ ログ2ん)→ 0E(Xc⋅log2⁡n)→0\mathbb{E}(X_{c\cdot\log_2n}) \to 0n → …

4
特定の乱数ジェネレータを使用して1〜100を印刷する最も効率的なアルゴリズム
RandNum501〜50の範囲で一様にランダムな整数を生成する乱数ジェネレーターが提供されます。この乱数ジェネレータのみを使用して、1から100までのすべての整数をランダムな順序で生成および出力できます。すべての数は正確に1度来る必要があり、任意の場所で任意の数が発生する確率は等しくなければなりません。 これのための最も効率的なアルゴリズムは何ですか?

2
アルゴリズムへの入力としての
代数をアルゴリズムへの入力として与えることの意味を特定したいのですが、それに関する文献はほとんど見つかりませんでした。したがって、まず、フィールド上の代数の複雑性分析のトピックを扱い、決定問題を明確に定義する本または紙を推薦できるかどうかを尋ねたいと思います。 少し掘り下げた後、私は何かを見つけ、それをここで共有したいと思います。さらに、定義が意味があり、文献に準拠しているかどうかを確認します(ある場合)。 定義:レッツフィールドであるとAが有限生成可換もFの添加剤を基礎と-代数bは1、... 、B nは ∈ F。私たちは今、代数の乗法構造を捉えるため、すべての基本要素の線形結合として基本要素のすべての製品を書きたい: ∀ 1 ≤ I 、J 、K ≤ N :∃ I JのK:B I B 、J = n ∑FF\mathbb FAAAFF\mathbb Fb1,…,bn∈Fb1,…,bn∈Fb_1,\ldots, b_n\in\mathbb Fと呼ばれる構造係数。私たちはそれを直接持っています: これで、次の決定問題を定義できます: 同型を指定するには、すべてのを基底の要素の線形結合として書き込むだけで十分です。∀1≤i,j,k≤n:∃aijk:bibj=∑k=1naijkbk.∀1≤i,j,k≤n:∃aijk:bibj=∑k=1naijkbk. \forall 1\leq i, j, k\leq n: \exists a_{ijk}: b_ib_j=\sum_{k=1}^n a_{ijk}b_k. A ≅ F [ B 1、... 、bはN ]aijkaijka_{ijk}{(A、B)|A、B 可換 Fを基準と-環 …

1
スライス内の要素をカウントするための配列の前処理(RMQへの削減?)
配列を指定して、1、... 、nは自然数の≤ K、kは定数であるが、私は答えにしたいO (1 )の形式のクエリは:「何回んmはインデックス間の配列に現れIとj "?a1,…,ana1,…,ana_1,\ldots,a_n≤k≤k\leq kkkkO(1)O(1)O(1)mmmiiijjj アレイは線形時間で前処理する必要があります。特に、範囲の最小クエリに減少があるかどうかを知りたいです。 これは、で、間隔内の1の数を照会する場合のRMQと同等です。だから私たちはそれを使うことができます。SEの制限のため、自分の質問には答えられませんでした。k=1k=1k=1

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