コンピュータサイエンス

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

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です。 私は最も効率的なアルゴリズムを探します。

2
単一リンクリストで実装されたキューのエンキューおよびデキューの時間の複雑さはどれくらいですか?
リンクリストデータ構造で実装されたキューの時間の複雑さを理解しようとしています。私の本では、次の方法でO(1)時間でキューを実装できると述べています。 奥に入れる 先頭でデキュー そしてそれはまた言います 要素を尾に追加するのは一定の時間ですが、新しい尾を見つける必要があるため、要素を尾から削除することはO(n)であることに注意してください 新しいノードをキューの先頭(エンキュー)に追加するには、ヘッドポインターがあるためO(1)がかかることを知っています。同様に、先頭のノードを削除すると(デキュー)、O(1)も使用されます。しかし、要素を後ろ(エンキュー)に追加するとO(1)がかかり、削除(デキュー)するとO(n)になる理由がわかりません。どちらの場合も(後ろでの追加/削除)はテールポインターを見つける必要があるため、トラバースする必要があるため、後ろでのキューへの登録がO(1)ではなくO(n)である場合、私にはより理にかなっています。リスト全体。

2
再帰
再帰を調べています これは、特定されていないアルゴリズムの実行時間を示しています(基本ケースは提供されていません)。T(n)=T(n/2)+T(n/3)+n,T(n)=T(n/2)+T(n/3)+n,T(n) = T(n/2) + T(n/3) + n, 帰納法を使用して、であることがわかりましたが、これはきついとは言われていません。実際、帰納的にすべてのと仮定しT(n)=O(nlogn)T(n)=O(nlog⁡n)T(n) = O(n\log n)T(k)≤CklogkT(k)≤Cklog⁡kT(k) \leq Ck\log kk<nk<nk 0、したがって、最後の式は C56nlogn≤CnlognC56nlog⁡n≤Cnlog⁡nC\frac{5}{6}n\log n\leq Cn\log n。 私の最初の質問は、これより厳しい制限は何ですか? 次に、Akra-Bazziメソッドを使用してこれを解決しようとしたので、 ppp 解決する (12)p+(13)p=1.(12)p+(13)p=1.\left(\frac{1}{2}\right)^p + \left(\frac{1}{3}\right)^p = 1. それからおよそ p=0.79p=0.79p=0.79、および(と g(n )= ng(ん)=んg(n) = n)なる ∫ん1g(u )あなたp + 1du =∫ん11あなたpdu =11 − p(ん1 − p− 1 )、∫1んg(あなた)あなたp+1dあなた=∫1ん1あなたpdあなた=11−p(ん1−p−1)、\int_1^n \frac{g(u)}{u^{p+1}} du …

1
主流のスピーチモデルで、パーソナライズされたトレーニングステップが不要になるのはなぜですか?
Windows XP時代に戻って、Windows OSに組み込まれた音声/ディクテーションをセットアップするとき、音声プロファイルをカスタマイズするために、プログラムされた一連のテキストサンプルを音声文字変換エンジンに話さなければなりませんでした。 今日、SiriやCortanaなどのネットワーク化された音声テキスト変換エンジンを使用して、口述筆記を始めることができます。 テキストからスピーチへの変換の品質は同等に見えますが、私の記憶はその点で不完全かもしれません。 スピーチモデルは、トレーニングデータのパーソナライズの必要性を超えて進んでいますか?または、明示的なトレーニングウィザードを使用せずに、カバーの下でパーソナライズを行うだけですか?あるいは、たとえそれがまだ有益であるとしても(例えば、それが不便だから)、彼らは訓練をしませんか?

4
配列をに分割した場合の再帰の深さは何ですか
配列を入力として受け取る関数があります。配列を同じサイズの部分に分割しますは配列のサイズです。要素が2つだけ残るまで、各サブ配列を分割し続けます。この再帰の深さはどれくらいですか?log2(n)log2⁡(n)\log_2(n)nnn プロセスの例: 最初に要素があり、それらを同じサイズの部分に分割します。これらの各部分には、要素が含まれています。次のレベルの再帰では、各配列を同じサイズの部分に再度分割します。これらの各要素には、要素が含まれるようになります。そして、要素が2つしかないサブ配列に到達するまで、この方法で配列を分割し続けます。nnnlog2(n)log2⁡(n)\log_2(n)nlog2(n)nlog2(n)\frac {n} {log_2(n)}log2(nlog2(n))log2(nlog2(n))log_2(\frac {n} {log_2(n)})nlog2(n)log2(nlog2(n))nlog2(n)log2(nlog2(n))\frac {\frac {n} {log_2(n)}} {log_2(\frac {n} {log_2(n)})}

5
指数化のためのFLOP(浮動小数点演算)の数
べき乗(べき乗)を実行するために必要な浮動小数点演算の数はいくつですか? 1 FLOP、演算の数は、2つの浮動小数点数の乗算を使用すると仮定するためのになり。しかし、これを行うためのより速い方法はありますか?が整数でない場合、どのように機能しますか?バツんバツんx^nn − 1ん−1n-1んんn

1
コンパイラのA正規化とK正規化の違いは何ですか?
管理標準形式は、各中間命令に名前が付いているプログラム中間表現です。GHCとOCamlで使用されます。 K正規化形式は、各命令が1つの割り当てと演算で構成される中間表現です。MLKit、Min-Caml、およびGoCamlで使用されます。 A正規化とK 正規化の両方に、継続を伴うlet式の生成が含まれます。 A正規化とK正規化は、まったく同じ変換のようです。それらが異なる名前に値するようなそれらの違いは何ですか?

2
線形計画法を正の線形計画法に減らす
次の形式の問題を解決するオラクルがあるとします maximize subject to cTxAx=b,x≥0maximize cTxsubject to Ax=b,x≥0\begin{align*} \text{maximize} ~~ & c^T x \\ \text{subject to} ~~ & A x = b, x\geq 0 \end{align*} (最大化対象内のすべての係数は非負です)。c≥0c≥0c\geq 0 一般的な線形プログラムを効率的に解くために使用できますか? 失敗した試み#1:で負の係数で表示される各変数を、別の変数置き換えます。残念ながら、このは非負性制約を満たしていません。xixix_icTxcTxc^T xyi:=−xiyi:=−xiy_i := - x_iyiyiy_i 失敗した試み#2:すべての要素が正でないことを確認します(必要に応じて方程式に-1を掛けます)。次に、デュアルLPを作成します。bbb maximize subject to −bTyATy≥cmaximize −bTysubject to ATy≥c\begin{align*} \text{maximize} ~~ & - b^T y \\ \text{subject to} …

1
アダマール行列の区別は_本当に_ NP困難ですか?
いくつかの異なる場所(http://www.ams.org/journals/mcom/2004-73-246/S0025-5718-03-01539-4/S0025-5718-03-01539-4.pdfおよびhttps: //books.google.com/books?id=qYYKBwAAQBAJ&pg=PA21&lpg=PA21&dq=np-hard+completing+hadamard+matrix&source=bl&ots=8sKv9bAtc8&sig=ITZSmtD2p2xr6Q4RDqhbQQk0NDI&hl=en&sa=X&ved=2ahUKEwiotuLdvfzdAhWBKHwKHUF9AO0Q6AEwB3oECAMQAQ#v=onepage&q=np-hard%20completing% 20hadamard%20matrix&f = false(2を与える)は、2つのアダマール行列の「同等性」を(行と列の符号反転と順列を許可するという意味で)決定することはNP困難であると主張されています。この声明の出典は引用されていませんでした。また、これを証明しているとする論文は見つかりませんでした。 一方、https://core.ac.uk/download/pdf/82725146.pdfは、nO(logn)nO(log⁡n)n^{O(\log n)}同等のアダマール行列を識別するアルゴリズム。アダマール行列の同値性はグラフ同型によく似ているため、これはある程度予想されます。(アダマール行列の等価性をGI問題として再定式化することも難しくありません。O(n2)O(n2)O(n^2) 頂点を直接、さまざまなよく研究されたGIアルゴリズムの下で準多項式解につながります。 これらの主張が両方とも真実であれば、もちろん、これは大きなニュースであり、ETHに違反します。NP硬度の主張は単なる(偽の)民俗定理ですか?

1
立方型理論における関数拡張性の証明における欠陥のある議論?
このGitHubリポジトリで、キュービカルタイプ理論に関する講義を読んでいます。で講義1著者は、機能extensionalityに次のように定義しています。 funExt (A B : U) (f g : A -> B) (p : (x : A) -> Path B (f x) (g x)) : Path (A -> B) f g = <i> \(a : A) -> (p a) @ i そして書きます To see that this makes sense compute the …

6
最初のチューリングマシン
アランチューリングが最初に作ったチューリングマシンがどれほど効率的だったか知っている人はいますか?つまり、1秒あたりに何回の動きをしたかということです...気になるところです。また、ウェブ上でそれに関する情報を見つけることができませんでした。

5
長い文字列で連続する繰り返される一連の行を識別するアルゴリズムを探しています
次のようなビッグスタックトレースの繰り返し部分を特定できるアルゴリズムが必要です。 java.lang.StackOverflowError at transform.Erasure$Eraser.typed1(Erasure.scala:789) at typechecker.Typers$Typer.runTyper$1(Typers.scala:5640) at typechecker.Typers$Typer.typedInternal(Typers.scala:5672) at typechecker.Typers$Typer.body$2(Typers.scala:5613) at typechecker.Typers$Typer.typed(Typers.scala:5618) at typechecker.Typers$Typer.$anonfun$typed1$38(Typers.scala:4752) at typechecker.Typers$Typer.silent(Typers.scala:700) at typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4754) at typechecker.Typers$Typer.typedApply$1(Typers.scala:4801) at typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5586) at typechecker.Typers$Typer.typed1(Typers.scala:5603) at transform.Erasure$Eraser.typed1(Erasure.scala:789) at typechecker.Typers$Typer.runTyper$1(Typers.scala:5640) at typechecker.Typers$Typer.typedInternal(Typers.scala:5672) at typechecker.Typers$Typer.body$2(Typers.scala:5613) at typechecker.Typers$Typer.typed(Typers.scala:5618) at typechecker.Typers$Typer.typedQualifier(Typers.scala:5723) at typechecker.Typers$Typer.typedQualifier(Typers.scala:5731) at transform.Erasure$Eraser.adaptMember(Erasure.scala:714) at transform.Erasure$Eraser.typed1(Erasure.scala:789) at typechecker.Typers$Typer.runTyper$1(Typers.scala:5640) at typechecker.Typers$Typer.typedInternal(Typers.scala:5672) at typechecker.Typers$Typer.body$2(Typers.scala:5613) at typechecker.Typers$Typer.typed(Typers.scala:5618) …

3
対数時間で共通の最小値を見つける
空でない交差があることがわかっているサイズ 2つのインスタンスが与えられ、交差の最小要素が時間で見つかるようなセットを格納するデータ構造を探しています。これは、最悪の場合または償却後の複雑さのどちらでも達成できますか?データ構造の他の要件:削除、初期化。O (n )O(n)O(n)O (ログn )O(log⁡n)O(\log n)O (ログn )O(log⁡n)O(\log n)O (n ログn )O(nlog⁡n)O(n \log n) 要件を明確にするために、このようなデータ構造の適用例を次に示します。入力は、すべて番号nを含むのn個のサブセットで構成されます。出力はn行n列の行列で、そのエントリはセットiとjの共通部分の最小要素です。基本的なアプローチで、この問題を時間で解決できます。上記の条件を満たすデータ構造では、時間で解くことができ。{ 1 、。。。、n }{1,...,n}\{1, ..., n\}私、ji,ji, jO (ん3)O(n3)O(n^3)O (ん2ログn )O(n2log⁡n)O(n^2 \log n)


1
適用順言語は、一定時間の配列書き込みをサポートしていませんか?そうでない場合、なぜそうではないのですか?
私はSteven Skienaの「The Algorithm Design Manual」を読んでおり、155ページの彼のウォーストーリーの 1つで彼は次のように述べています。 Mathematicaでは、計算の適用モデル(配列への一定時間の書き込み操作をサポートしていない)と解釈のオーバーヘッド(コンパイルではない)のため、効率はMathematicaの大きな課題です。 私はすでにSICPを読んでいるので、適用言語と通常順序言語の違いに精通しています(つまり、通常順序言語は必要になるまで手続き引数の評価を遅らせますが、適用順序言語はそれらが評価されるとすぐに評価しますプロシージャが呼び出されます)。しかし、上記のスキーナの文は、アプリケーション順言語のアイデアと、一定時間より悪い配列書き込みのアイデアとを関連付けているようです。AbelsonとSussmanが彼らのテキストでこれを言及したのを覚えていないので、これは驚きでした。 trueの場合、アプリケーション順言語が一定の時間内に配列に書き込みを行わない理由は何ですか?配列の書き込み時間を決定するときに評価の順序が重要になるのはなぜですか? 私はビッグ-Oの書き込みパフォーマンスは何も興味がある決定的な答えがありますしない限り、私はその質問をスキップしますので、この場合には、私は言語の実装に依存している想像してみてください。
7 arrays 

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