コンピュータサイエンス

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

2
大きな
まず、物事を明確にするために、大きなの定義を書いてみましょうOOO。 f(n)∈O(g(n))⟺∃c,n0>0f(n)∈O(g(n))⟺∃c,n0>0f(n)\in O(g(n))\iff \exists c, n_0\gt 0ように0≤f(n)≤cg(n),∀n≥n00≤f(n)≤cg(n),∀n≥n00\le f(n)\le cg(n), \forall n\ge n_0 有限数の関数があるとしましょう:f1,f2,…fnf1,f2,…fnf_1,f_2,\dots f_n満足: O(f1)⊆O(f2)⋯⊆O(fn)O(f1)⊆O(f2)⋯⊆O(fn)O(f_1)\subseteq O(f_2)\dots \subseteq O(f_n) 推移によってOOO:、我々は持っているO(f1)⊆O(fn)O(f1)⊆O(fn)O(f_1)\subseteq O(f_n) 我々は無限の連鎖がある場合は、この保留はありませんO′sO′sO's?換言すれば、あるO(f1)⊆O(f∞)O(f1)⊆O(f∞)O(f_1) \subseteq O(f_\infty)? 何が起こっているのか想像できません。

1
チューリング機械のゲーデル化
私は計算理論コースのゲーデル化を見ていました。ゲーデルの番号付けの概念は理解できましたが、計算の理論におけるその重要性は理解できませんでした。誰もがいくつかの良い資料を指摘したり、その重要性を指摘したりできますか

3
非常に大きなファイルで最も多く発生する要素を見つける
私はこのインタビューの質問をたくさん聞いたので、良い答えが何であるかについていくつかの意見をもらいたいと思っていました:10GB以上の大きなファイルがあり、どの要素が最も多く発生しているのか、良い方法を見つけたいこれをする? 多くのメモリを使用するため、マップで繰り返し追跡するのはおそらく良い考えではありません。また、エントリが入ってくるときに追跡するのは、この質問が提起されたときにファイルがすでに存在するため、最大のオプションではありません。 ファイルを分割して複数のスレッドで繰り返し処理し、それらの結果を結合することを含めた他の考えもありますが、マップのメモリの問題は依然として残っています。

4
誰かが、文脈依存の文法の単純ではあるがおもちゃではない例を与えることができますか?
文脈依存文法を理解しようとしています。 言語が好きな理由がわかります {ww∣w∈A∗}{ww∣w∈A∗}\{ww \mid w \in A^*\} {anbncn∣n∈N}{anbncn∣n∈N}\{a^n b^n c^n \mid n\in\mathbb{N}\} 文脈自由ではないが、型付けされていないラムダ計算に似た言語が文脈依存であるかどうかを知りたい。 シンプルだが、おもちゃではない例(上記のおもちゃの例を検討します)、いくつかの生産規則のために、たとえば記号の文字列の有無を伝えることができる文脈依存文法の例を見てみたい現在スコープ内にあります(たとえば、関数の本体を生成する場合)。 文脈依存文法は、未定義/未宣言/非バインド変数を構文上の(意味ではなく)エラーにするほど強力ですか?

3
頭と尾の不一致
偏りのないコインのフリップのシーケンスを考えます。LET最初に見られる尾部上のヘッドの数の過剰の絶対値を表しiが反転します。定義H = \テキスト{最大} _i H_Iを。ことを示すE [H_I] = \シータ(\ SQRT {I})とE [H] = \シータ(\ SQRT {N}) 。nnnHiHiH_iiiiH=maxiHiH=maxiHiH=\text{max}_i H_iE[Hi]=Θ(i√)E[Hi]=Θ(i)E[H_i]=\Theta ( \sqrt{i} )E[H]=Θ(n−−√)E[H]=Θ(n)E[H]=\Theta( \sqrt{n} ) この問題は、RaghavanとMotwaniによる「ランダム化されたアルゴリズム」の最初の章に現れているので、おそらく上記のステートメントの基本的な証拠があるでしょう。私はそれを解決することができないので、私は助けをいただければ幸いです。

2
すべての状況依存言語は決定可能ですか?
私は通過つもりだったのWikipediaの定義は文脈依存言語と私はこれを見つけました: 言語の各カテゴリは、そのすぐ上のカテゴリの適切なサブセットです。各カテゴリのオートマトンと文法には、そのすぐ上のカテゴリに同等のオートマトンまたは文法があります。 この記事の注文では、線形限定オートマトンが決定者のすぐ下にあることがわかりました。これが当てはまる場合、LBAでのすべての計算はある時点で停止します(すべてのLBAが決定者になるため)。しかし、停止することなくLBAで同時に実行できる計算があるかもしれません。たとえば、LBAで計算を書くことができます。 テープの最初の記号を読んで右に移動します。 次のシンボルを読み、左に戻ります。 この(役に立たない)計算(明らかにLB計算)は、左右に振動し続け、停止することはないため、決定者にはなれません。どこが間違っていると思いますか?

2
LL(k)とLR(k)の文法を区別する方法はありますか?
私は最近、コンパイラの設計について勉強しています。LL文法とLR文法の2種類の文法について知りました。 また、すべてのLL文法がLRであり、LL文法がLR文法の適切なサブセットであるという事実も知っています。1つ目はトップダウン解析で使用され、2つ目はボトムアップ解析で使用されます。 しかし、特定の文法がLLまたはLRであると言えるようにする方法はありますか?

2
二重重みパラメータを持つ最小スパニングツリー
グラフ考えG(V,E)G(V,E)G(V,E)ます。各エッジeeeは2つの重みAeAeA_eとBeBeB_eます。製品最小化スパニングツリー検索(∑e∈TAe)(∑e∈TBe)(∑e∈TAe)(∑e∈TBe)\left(\sum_{e \in T}{A_e}\right)\left(\sum_{e \in T}{B_e}\right)。アルゴリズムは、に関して多項式時間で実行する必要があります。V | 、| E | |V|,|E||V|,|E||V|, |E|。 スパニングツリー(Kruskal、Prim、Edge-Deletion)に従来のアルゴリズムを適用することは困難です。解決方法 ヒントはありますか?

4
有理数の比較
所与及び、a,b,c,d∈Na,b,c,d∈Na,b,c,d \in \mathbb Nb,d∉{0}b,d∉{0}b,d \notin \{0\} ab&lt;cd⟺ad&lt;cbab&lt;cd⟺ad&lt;cb \begin{eqnarray*} \frac a b < \frac c d &\iff& ad < cb \end{eqnarray*} 私の質問は: 与えられa,b,c,da,b,c,da,b,c,d 我々は決定することができると仮定すると、における、決定するどのような方法がある乗算(または分割)、プリフォームすることなくおよび。または、方法がないという何らかの証拠があります。x&lt;y∈Zx&lt;y∈Zx < y \in \mathbb ZO(|x|+|y|)O(|x|+|y|)\mathcal{O}(|x| +|y|)ad&lt;cbad&lt;cbad<cba⋅da⋅da\cdot dc⋅bc⋅bc \cdot b 分母を乗算するよりも有理数を比較するための高速な方法はありますか。

3
入力サイズを大きくするとインスタンスが難しくなるのはなぜですか?
以下では、無限テープチューリングマシンで作業していると仮定します。 時間の複雑さの概念を誰かに説明し、なぜそれがインスタンスの入力サイズに対して測定されるのかを説明するとき、私は次の主張に出くわしました。 [..]たとえば、2つの整数に3ビットを掛けるよりも、2つの整数に100000ビットを掛けるのに多くのステップが必要になるのは自然です。 主張は説得力がありますが、どういうわけか手を振っています。私が出会ったすべてのアルゴリズムで、入力サイズが大きいほど、必要なステップが多くなります。より正確に言えば、時間の複雑さは入力サイズの単調増加関数です。 時間の複雑さが常に入力サイズの増加関数であるということですか?もしそうなら、なぜそうなのですか?手を振る以上の証拠はありますか?

2
正規言語と非正規言語の交差と結合
してみましょう、規則的でL 1 ∩ L 2の正規、L 2規則的ではありません。ことを示し、L 1 ∪ LをL1L1L_1L1∩L2L1∩L2L_1 \cap L_2L2L2L_2、正規ではないか、反例を与えます。L1∪L2L1∪L2L_1 \cup L_2 私はこれを試してみました:を見。これは定期的です。私はこのために、有限オートマトンを構築することができる:L 1は規則的であり、L 2 ∩ L 1が規則的であるのでためのすべてのパス(有限量)を削除L 1 ∩ L 2のパスの有限量からL 1。そのため、この全体に使用できるパスの数には限りがあります。このことはL 2から切り離されていますが、L 1 ∖ (LL1∖(L2∩L1)L1∖(L2∩L1)L_1 \setminus (L_2 \cap L_1)L1L1L_1L2∩L1L2∩L1L_2 \cap L_1L1∩L2L1∩L2L_1 \cap L_2L1L1L_1L2L2L_2L1∖(L1∩L2)L1∖(L1∩L2)L_1 \setminus (L_1 \cap L_2)(通常)およびL2L2L_2(規則的ではない)が正規ではありませんか?

3
合計がNになるすべての4乗の組み合わせをどれくらい早く見つけることができますか?
Stack Overflowで質問がありました(こちら): 整数与えられると、方程式A 2 + B 2 + C 2 + D 2 = Nを解くA 、B 、CおよびDNNNの整数値のすべての可能な組み合わせを出力します。A,B,CA,B,CA,B,CDDDA2+B2+C2+D2=NA2+B2+C2+D2=NA^2+B^2+C^2+D^2 = N この質問は、もちろん、バチェットの数論における推測(彼の証明からラグランジュの四乗定理と呼ばれることもある)に関連しています。単一の解決策を見つける方法を議論するいくつかの論文がありますが、特定のNのすべての解決策を見つけることができる速さ(つまり、すべての順列ではなく、すべての組み合わせ)を見つけることについて話すものを見つけることができませんでした。NNN 私はそれについてかなり考えてきましたが、時間と空間で解決できるように思われます。ここで、Nは望ましい合計です。しかし、主題に関する事前情報が不足しているため、それが私の側の重要な主張なのか、ささいな、明白な、またはすでに知られている結果なのかわかりません。O(N)O(N)O(N)NNN それで、問題は、与えられたすべての4乗和をどれだけ速く見つけることができるかということです。NNN OK、私が考えていた(ほぼ)O(N)アルゴリズムです。最初の2つのサポート関数、最も近い整数平方根関数: // the nearest integer whose square is less than or equal to N public int SquRt(int N) { return (int)Math.Sqrt((double)N); } そして、0からNまでのすべてのTwoSquareペアを返す関数: // Returns a list of …

6
多項式実行時間に対するn * log nおよびn / log n
はΘ (n log n )より速く、Θ (n / log n )より遅いことを理解しています。どのような私が理解するのは困難であることは、実際に比較する方法であるΘを(N ログN )とΘ (nは/ログN )とΘ (nはF)どこ0 &lt; F &lt; 1。Θ(n)Θ(n)\Theta(n)Θ(nlogn)Θ(nログ⁡n)\Theta(n\log n)Θ(n/logn)Θ(n/ログ⁡n)\Theta(n/\log n)Θ(nlogn)Θ(nログ⁡n)\Theta(n \log n)Θ(n/logn)Θ(n/log⁡n)\Theta(n/\log n)Θ(nf)Θ(nf)\Theta(n^f)0&lt;f&lt;10&lt;f&lt;10 < f < 1 たとえば、私たちはどのように決めるん対Θ (nは2 / 3)、またはΘ (nは1 / 3)Θ(n/logn)Θ(n/log⁡n)\Theta(n/\log n)Θ(n2/3)Θ(n2/3)\Theta(n^{2/3})Θ(n1/3)Θ(n1/3)\Theta(n^{1/3}) このような場合の手続きに向けていくつかの指示があります。ありがとうございました。

2
カープ削減はレビン削減と同一ですか
定義:カープ削減 言語言語にカープの還元性である多項式時間計算可能関数がある場合ようにすべてのために、場合のみ。AABのBBF :{ 0 、1 } * → { 0 、1 } *f:{0,1}∗→{0,1}∗f:\{0,1\}^*\rightarrow\{0,1\}^* X xxX ∈ A x∈Ax\in AF (X )∈ Bf(x)∈Bf(x)\in B 定義:レビン削減 検索問題は、Karpがを減らす多項式時間関数があり、次のような多項式時間計算可能な関数とがある場合、検索問題還元可能です。V A VAV_AV BVBV_B f ffL (V A)L(VA)L(V_A)L (V B)L(VB)L(V_B)g gghhh ⟨ X 、Y ⟩ ∈ V A⟹⟨ F (X )、G (X 、Y )⟩ ∈ V …

2
正規表現の言語は、それを解析するためにプッシュダウンオートマトンを必要としますか?
ユーザーが入力した正規表現をNFAに変換して、マッチングのために文字列に対してNFAを実行できるようにします。正規表現の解析に使用できる最小マシンは何ですか? 括弧の意味はカウントの必要性を意味し、DFA / NFAは任意のカウントを実行できないため、プッシュダウンオートマトンである必要があると思います。この仮定は正しいですか?たとえば、式a(bc *)dはPDAを必要とするため、括弧内の部分式が正しく処理されます。

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