コンピュータサイエンス

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

4
なぜ線形プログラミングはPであるのに整数プログラミングはNP困難なのですか?
線形計画法(LP)はPで、整数計画法(IP)はNP困難です。しかし、コンピューターは有限の精度でしか数値を操作できないため、実際にはコンピューターは線形計画法に整数を使用しています。このため、LPとIPは同じ複雑さのクラスにすべきではありませんか?

6
非有限オートマトンはありますか?
オートマトン理論では、私たちは皆、最初から有限オートマトンとしてオートマトンを読みます。私が知りたいのは、オートマトンが有限である理由です。明確にするために、有限のオートマトンには、アルファベット、言語、正規表現で作成された文字列、または何が含まれていますか?そして、(理論上)非有限オートマトンはありますか?

2
バイナリ検索のbig-Oのログがベース2ではないのはなぜですか?
コンピューターサイエンスアルゴリズムを理解するのは初めてです。私はバイナリ検索のプロセスを理解していますが、その効率性について少し誤解しています。 要素のサイズでは、特定の要素を見つけるのに平均でnステップかかります。両側の底2の対数を取ると、log 2(s )= nが得られます。それでは、バイナリ検索アルゴリズムの平均ステップ数はlog 2(s )ではありませんか?s = 2ns=2ns = 2^nnnnログ2(s )= nログ2⁡(s)=n\log_2(s) = nログ2(s )ログ2⁡(s)\log_2(s) バイナリ検索アルゴリズムに関するこのウィキペディアの記事では、平均パフォーマンスはと述べてい。これはなぜですか?なぜこの数字ははないのですか?O (ログn )O(ログ⁡n)O(\log n)ログ2(n )ログ2⁡(n)\log_2(n)

2
量子ラムダ計算
古典的に、計算について考える一般的な方法は3つあります。チューリングマシン、回路、およびラムダ計算(ほとんどの機能ビューのすべてをキャッチとして使用します)。3つすべては、さまざまなタイプの問題について考えるための実り多い方法であり、このため、さまざまな分野でさまざまな定式化が使用されています。 ただし、量子コンピューティングを扱うときは、回路モデルについてしか考えません。もともと、QCは量子チューリングマシンの観点から定義されていましたが、私が理解している限り、この定義は(両方とも慎重に定式化された場合の量子回路に相当しますが)あまり実りがありませんでした。第3の定式化(ラムダ計算または同様の機能設定に関して)私は完全に不慣れです。したがって、私の質問: 量子ラムダ計算(または他の機能的パラダイム)の有用な定義は何ですか? QIPのどのサブフィールドが、回路モデルの代わりにこの定式化を使用することでより深い洞察を得ますか? ノート 私は、セルオートマトン、RAMモデルなど、他の多くの一般的な形式を無視していることを認識しています。これらを除外するのは、これらのモデルに関して古典的に考える経験がなく、量子的だからです。 また、測定ベース、トポロジカル、断熱など、量子環境には一般的な選択肢があることも認識しています。私は古典的な対応物に精通していないので、それらについて議論しません。

3
最悪のケース
私は最悪の与えるトラブル発見の良いリソース持っています場所での安定したソートアルゴリズムを。誰かが良いリソースを知っていますか?O(nlnn)O(nln⁡n)O(n \ln n) ただのリマインダーは、渡された配列を使用することを意味し、ソートアルゴリズムは一定の余分なスペースのみを使用できます。安定とは、同じキーを持つ要素が、元の配列と同じ順序でソートされた配列に表示されることを意味します。 たとえば、単純なマージソートは最悪の場合および安定ですが、O (n )の余分なスペースを使用します。標準のクイックソートは安定したものにできますが、適切に配置されていますが、最悪の場合はO (n 2)です。ヒープソートは配置されています。最悪の場合はO (n ln n )ですが、安定していません。 ウィキペディアには、どのソートアルゴリズムにどの欠点があるかを示す優れたチャートがあります。安定性の3つの条件すべて、最悪の場合O (n ln nO (n lnn )O(nln⁡n)O(n \ln n)O (n )O(n)O(n)O (n2)O(n2)O(n^2)O (n lnn )O(nln⁡n)O(n \ln n)および所定の位置にある。O (n lnn )O(nln⁡n)O(n \ln n) Katajainen、Pasanen、Teuholaによる「Practical in-place mergesort」と呼ばれる論文を見つけました。この論文は、最悪の場合がプレースマージソートバリアントにあると主張しています。結果を正しく理解している場合、配列の最初のと配列の最後ので(ボトムアップ?)mergesortを再帰的に使用し、2番目のをマージするためのスクラッチスペースとして。私はまだこれを読んでいるので、結果を正しく解釈しているかどうかについてのさらなる情報はありがたいです。O (n lnn )O(nln⁡n)O(n \ln n)1414\frac{1}{4}1212\frac{1}{2}1414\frac{1}{4} また、安定したクイックソートの最悪のケースにも非常に興味があります。私が理解していることから、クイックソートを最悪のケースO (n ln n )に変更するには、通常は安定性を損なう適切なピボットを選択する必要があります。O (n lnn …

2
イドリスはチューリングの完全性をあきらめることで何ができないのでしょうか?
Idrisには依存型があることは知っていますが、完全にはチューリングしていません。チューリングの完全性をあきらめることで何ができませんか?これは依存型を持つことに関連していますか? これは非常に具体的な質問だと思いますが、依存型と関連する型システムについてはあまり知りません。

6
ロスレス圧縮アルゴリズムはエントロピーを削減しますか?
ウィキペディアによると: シャノンのエントロピーは、決定された(または予測可能な)メッセージの部分とは対照的に、メッセージに含まれる情報を測定します。後者の例には、言語構造の冗長性や、文字や単語のペア、トリプレットなどの出現頻度に関する統計的特性が含まれます。 エントロピーは、メッセージに含まれる情報の量の尺度です。エントロピーコーダーは、そのようなメッセージを表現するために必要な最小ビット数(エントロピー)に可逆圧縮するために使用されます。私にとって、これは、メッセージを可能な限り損失なく圧縮するために必要なのは完全なエントロピーエンコーダーだけであるように見えます。 ただし、多くの圧縮アルゴリズムは、エントロピーコーディングの前にステップを使用して、メッセージのエントロピーを減らすと考えられています。 ドイツのウィキペディアによると Entropiekodierer werdenhäufigmit anderen Kodierern kombiniert。Dabei dienen vorgeschaltete Verfahren dazu、die Entropie der Daten zu verringern。 英語で: エントロピーコーダーは他のエンコーダーと頻繁に組み合わされます。前の手順は、データのエントロピーを減らすのに役立ちます。 つまり、bzip2はエントロピーコーディング(この場合はハフマンコーディング)を適用する前に、Burrows-Wheeler-Transformに続いてMove-To-Front-Transformを使用します。 これらの手順は、メッセージのエントロピーを実際に減らしますか?これは、メッセージに含まれる情報の量を減らすことを意味しますか?圧縮中に情報が失われ、無損失の圧縮解除が妨げられることになるため、これは私には矛盾しているようです。または、メッセージを変換してエントロピーコーディングアルゴリズムの効率を向上させるだけですか?または、エントロピーはメッセージ内の情報量に直接対応していませんか?

13
最初のプログラミングコースの言語選択の基準
大学レベルのCS教育者として、最初のプログラミングコースでどのプログラミング言語を教えるかという問題がしばしば議論の対象になります。数千の言語から選択することができ、ある言語キャンプを別の言語キャンプよりも多くの宗教的な熱(または熱意)が支えています。各プログラミング言語を取り巻くこの主観的なバイアスはすべて、教育者が言語を選択することを非常に困難にします。 私の質問は: 教育者はどのような客観的な基準を使用して、大学の1年生のプログラミングコースの基礎として使用するプログラミング言語を選択できますか?これらの基準の根拠は何ですか? 注:プログラミング言語のリストと、それらが使用するのに最適な理由を知りたくありません。問題は最高の言語ではなく、言語を選択するための基準です。ただし、特定のポイントを説明するためにプログラミング言語を使用することもできます。 この質問は、トピック外とみなされた別の質問https://cs.stackexchange.com/questions/1946/criteria-for-choosing-a-first-programming-languageに触発されました。

10
ビジュアルプログラミング言語
私たちのほとんどは、Basic、C / C ++、Javaなどの「テキスト」プログラミング言語を使用してプログラミングを学びました。人間が視覚的に考える方が自然で効率的だと思います。ビジュアルプログラミングにより、開発者はグラフィカル要素を操作してプログラムを作成できます。ビジュアルプログラミングを使用すると、コードの品質が向上し、プログラミングのバグが減少するはずです。App Inventor、Scratch、LabViewなどのいくつかの視覚言語を知っています。 開発者向けの主流の汎用視覚言語がないのはなぜですか?ビジュアルプログラミングの長所と短所は何ですか?

1
キューをBFS実装のスタックに変更すると、DFSを取得できますか?
次に、幅優先検索の標準的な擬似コードを示します。 { seen(x) is false for all x at this point } push(q, x0) seen(x0) := true while (!empty(q)) x := pop(q) visit(x) for each y reachable from x by one edge if not seen(y) push(q, y) seen(y) := true ここpushでpopは、キュー操作であると想定されています。しかし、スタック操作の場合はどうでしょうか?結果のアルゴリズムは、深さ優先順で頂点を訪問しますか? 「これは取るに足らない」というコメントに投票した場合、なぜそれが取るに​​足らないのかを説明してください。この問題は非常に注意が必要です。

2
多項式時間では解けるが、多項式時間では検証できないタスクはありますか?
私の同僚と私はちょうど私たちの教授の一人のいくつかのメモを打ちました。メモには、多項式時間で解くことができる(PFのクラスにある)が、多項式時間では検証できない(NPFのクラスにない)タスクがあると述べられています。 これらのクラスについて詳しく説明するために、入力Xを取得し、出力Xを生成して、(X、Y)がタスクRを表す関係Rになるようにします。多項式時間でXのYを取得できる場合、タスクはPFのクラスに属します。タプル(X、Y)が多項式時間で関係Rにあることを証明する多項式長の証明書Zを検証できる場合、タスクはNPFのクラスに属します。 答えが単純にYESまたはNOである(特定の文字列が特定の言語に属する場合、より正式には)決定問題については話していません。決定問題の場合、PFはNPFの適切なサブセットであるように見えます。ただし、他のタスクでは異なる場合があります。 多項式時間では解けるが、多項式時間では検証できないタスクを知っていますか?

3
より単純なパスの数発見アルゴリズム
G=(V,E)G=(V,E)G=(V,E)ssstttssstttGGGtttP ⇝ Z V P S R Y のV V S 、R 、Y 、VのP O Vs⇝ts⇝ts \rightsquigarrow tこれが他のパスのサブパスである場合、DFSもこのサブパスを再度通過します。たとえば、からまでのパスの数を見つける必要がある隣接リストを考えます。 ここで、DFSはで始まり、 DFSが正常に実行されないため、ます。 pathは。これはに遭遇するため、頂点色を灰色に変更しないためです。pppvvv posryvzworryvwzsszvposzorsvsrryyvvwzwz\begin{array}{|c|c c c|} \hline p &o &s &z \\ \hline o &r &s &v\\ \hline s &r \\ \hline r &y \\ \hline y &v \\ \hline v &w …

7
コンピューターは、ある数値が他の数値よりも小さいか大きいかをどのように判断しますか?
馬鹿げた質問のように聞こえるかもしれませんが、コンピューターがをどのように知っているのか知りたいのですが。また、どのように整数の順序であることコンピュータ知って1 、2 、3 、4 、5 、...とアルファベットがA、B、C、D、...?それはハードウェアのどこかに保存されていますか、それともオペレーティングシステムはこの種の情報を提供しますか?1 &lt; 21&lt;21<21 、2 、3 、4 、5 、...1,2,3,4,5,…1,2,3,4,5,\ldots

9
状況依存(タイプ1)言語の重要性は何ですか?
Chomsky Hierarchyでは、タイプ3言語は外部メモリのない状態マシン(すなわち、有限オートマトン)によって認識され、タイプ2は単一スタックの状態マシン(すなわち、プッシュダウンオートマトン)およびタイプ0によって認識されます。2つのスタックを持つステートマシン(または、チューリングマシンの場合と同じように、テープ)、Type 1言語はこの図にどのように適合しますか?また、言語がタイプ0だけでなくタイプ1であると判断することにはどのような利点がありますか?

4
「ソート度」の測定方法
配列の「ソート度」を測定する標準的な方法があるかどうか疑問に思っていますか?可能性のある反転の中央値を持つ配列は、最大限にソートされていないと見なされますか?つまり、基本的には、並べ替えまたは逆並べ替えのいずれかが可能な限り行われないということです。

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