コンピュータサイエンス

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

2
コンピューターサイエンスの「キー」とは何ですか?
私は、コンピュータサイエンスにおける「キー」の正確な意味について少し混乱しています。キーと値のペア、主キーなどを理解しています。しかし、「キー」という用語自体の意味の定義を見つけることができません。 私が知る限り、それは単なるデータを意味します。CLRSでは、ツリーノードに関連付けられたデータは「キー」と呼ばれます。ハッシュテーブルを検索するデータは「キー」と呼ばれます。これは「キー」とは何ですか?

1
自動化された定理証明器によってどのような数学の問題を解決できますか?
利用可能な自動定理証明器を使用して、次のステートメントを証明できますか? (a + b )2= a2+ b2+ 2 a b(a+b)2=a2+b2+2ab(a+b)^2=a^2+b^2+2ab。 もし、その後、。11 ∣ 2 a − 3 b11∣2a−3b 11 \mid 2a-3b11∣7a−5b11∣7a−5b 11 \mid 7a-5b もし、次いで、。ax2+bx+c=0ax2+bx+c=0 ax^2+bx+c=0x=−b±b2−4ac√2ax=−b±b2−4ac2ax=\frac{-b\pm\sqrt{b^2-4ac} }{2a} が偶数の場合は偶数です。aaa4a4a4a 等々! 論理の定理を証明する自動定理証明の応用を見つけたばかりなので、この質問をしています。

2
最初に別のアルゴリズムを見つけることによって関数を計算するアルゴリズムの概念はありますか?
私はそれを正しく理解していれば、実際の関数の値を計算するアルゴリズム、計算の複雑さを持っている以下に保持している場合:我々は計算すると精度にのために必要との手順。O (G (N ))F δ G (N )fffO(g(n))O(g(n))O(g(n))fffδδ\deltag(n)g(n)g(n) しかし、私たちがアルゴリズムを持っている場合、最初は「計算するために、より効率的なアルゴリズムを見つけること」、その後、計算?fffffff 言い換えると、次のことを行うアルゴリズムがある場合はどうAAAなりますか。 fを計算するための効率的なアルゴリズムBBBを見つけます。fff ユースBBB計算にfff。 その場合、アルゴリズムAがすでにアルゴリズムBを見つけたかどうかに完全に依存するため、たとえばを計算するのにかかる計算時間について話すことはできません。換言すれば、計算時間は、計算に必要なF (5 )場合5は、第一comoputed数を計算するのに必要な計算時間よりもはるかに大きいであるF (5 )の後にF (3 )既に計算されています。f(5)f(5)f(5)AAABBBf(5)f(5)f(5)555f(5)f(5)f(5)f(3)f(3)f(3) 私の質問は、関数を計算する前に最初に別のアルゴリズムを見つけるこの種のアルゴリズムに関する概念/理論はありますか?具体的には、このようなアルゴリズムの計算の複雑さの分析について疑問に思っています。


1
グラフの導関数は隣接リストに関連していますか?
Conor McBrideの作品の一部であるDiff、Dissectは、データ型の導関数を「ワンホー​​ルコンテキストの型」に関連付けます。つまり、型の導関数を取得すると、任意の時点で内部からデータ型がどのように見えるかを示すデータ型が残ります。 したがって、たとえば、リストがある場合(Haskellに) data List a = [] | a : List a これは data List a = 1 + a * List a 少し数学的な魔法を通して、導関数は data ListDeriv a = List a * List a これは、リスト内の任意の時点で、左側にリストがあり、右側にリストがあることを意味すると解釈されます。派生データ構造を使用して、元のリストを圧縮できます。 今、私はグラフで似たようなことをすることに興味があります。グラフの一般的な表現は、頂点とエッジのセットです。これらは、次のようなデータ型で単純に実装できます。 data Gr a b i = Gr [(i,a)] [(i,i,b)] 私がそれを正しく理解していれば、グラフのインデックスに関するこのデータ型の導関数はi次のようになります。 data GrDeriv a b …

2
最大流量の残差グラフ
ここで最大流量問題について読んでいます。残余グラフの背後にある直感を理解できませんでした。フローを計算するときにバックエッジを考慮するのはなぜですか? Residual Graphの概念を理解してくれる人はいますか? 無向グラフのアルゴリズムはどのように変わりますか?

2
「従属連産品タイプ」を持つことはできますか?
私はHoTT本を読んでいますが、第1章の内容について(おそらく非常に素朴な)質問があります。 この章では、関数型 を紹介し、を依存させることで一般化します。 そして、それは従属関数型と呼ばれます。B x :A B :A → U、f:A → Bf:A→B f:A\to B BBBx :Ax:Ax:A B :A → U、g:∏x :AB (x )B:A→U,g:∏x:AB(x)B:A\to\mathcal{U},\qquad g:\prod_{x:A}B(x) 次に、この章では製品タイプ を紹介し、を依存させることで一般化します およびそれは依存ペアタイプと呼ばれます。B x :A B :A → U、f:A × Bf:A×B f:A\times BBBBx :Ax:Ax:A B :A → U、g:∑x :AB (x )B:A→U,g:∑x:AB(x)B:A\to\mathcal{U},\qquad g:\sum_{x:A}B(x) ここでパターンを間違いなく見ることができます。 次に、この章 では連産品タイプ および... …

2
ILPからSATへのポリタイムの削減?
したがって、知られているように、ILPの0-1決定問題はNP完全です。NPで表示するのは簡単で、元の削減はSATからでした。それ以来、他の多くのNP完全問題にはILPの定式化が示されています(ILPは非常に有用であるため、これらの問題からILPへの還元として機能します)。 ILP からの削減は、自分でやるか追跡するのがはるかに難しいようです。 したがって、私の質問は、ILPからSATへのポリタイムの削減を知っている人はいますか?つまり、SATを使用して0-1のILP決定問題を解決する方法を示していますか?

2
木の頂点の最小カバーのための欲張りアルゴリズムの正当性証明
DFSトラバーサルを使用するツリーの最小頂点カバーを見つけるための貪欲なアルゴリズムがあります。 ツリーの葉ごとに、その親を選択します(つまり、その親は最小の頂点カバー内にあります)。 各内部ノードに対して: その子のいずれかが選択されていない場合、このノードを選択します。 この貪欲な戦略が最適な答えを与えることをどのように証明しますか?上記のアルゴリズムが生成するものよりもサイズが小さい頂点カバーがないこと?

2
001と100の等しい数を含む単語の言語は規則的ですか?
2つのサブストリングの同じ数のインスタンスを含む言語がいつ正規化されるのだろうと思いました。Iは1と0の等しい数を含む言語が正規ではないことを知っているが、のような言語であり、、 =サブストリングのインスタンスの数が「001」は、「サブストリングのインスタンスの数に等しいが100 "レギュラー?文字列「00100」が受け入れられることに注意してください。LLLLLL{ w ∣{w∣\{ w \mid}}\} 私の直感はそうではないと言っていますが、それを証明することはできません。それをポンピング補題を介してポンピングできる形式に変換することはできません。どうすればそれを証明できますか?一方、DFA、NFA、または正規表現を作成しようとしましたが、それらの面でも失敗しました。どのようにすればよいですか?提案された言語だけでなく、これを一般的に理解したいと思います。

2
DAGの2つの頂点間の最短および最長パスを見つける
非加重DAG(有向非巡回グラフ)と2つの頂点および与えられた場合、多項式時間でからへの最短および最長の経路を見つけることは可能ですか?パスの長さは、エッジの数で測定されます。D=(V,A)D=(V,A)D = (V,A)ssstttsssttt 多項式時間で可能な経路長の範囲を見つけることに興味があります。 追って、この質問はStackOverflow質問DAGの最長パスの複製です。

7
負の配列インデックスが意味をなすのはなぜですか?
私はCプログラミングの奇妙な経験に出会いました。次のコードを検討してください。 int main(){ int array1[6] = {0, 1, 2, 3, 4, 5}; int array2[6] = {6, 7, 8, 9, 10, 11}; printf("%d\n", array1[-1]); return 0; } これをコンパイルして実行しても、エラーや警告は表示されません。私の講師が言ったように、配列インデックス-1は別の変数にアクセスします。私はまだ混乱していますが、なぜプログラミング言語にはこの機能があるのですか?つまり、なぜ負の配列インデックスを許可するのですか?

4
コンピュータサイエンスの自習
私は16歳の男性です。最近、友人からコンピューターサイエンスに関する大きな百科事典が贈られました。私は通常、コンピューターとテクノロジーにそれほど興味はありませんが、コンピューターサイエンスは私を魅了し始めました。ただし、CSではなく物理学や数学を勉強するつもりなので、コンピューターサイエンスの自習を行うことは有益でしょうか。もちろん、私はBScのレベルではなく、CSの基本だけに取り組んでいます(600ページ以下の百科事典です)。

5
命題論理と述語論理を学ぶ理由
コンピューター科学者またはソフトウェア開発関連のエンジニアが基礎としての基本的なロジックの研究を理解する必要があることの重要性を理解できます。 しかし、あらゆる種類の知識表現を必要とするタスク以外に、これらに関する知識を明示的に必要とするタスク/ジョブはありますKnowledge Baseか?概念的な応答ではなく、タスクの種類を聞きたいです。 私がこれを尋ねる理由は、私の好奇心からです。CSの学生はこのテーマに一定の時間を費やす必要がありますが、一部の実用的な集中コース(AIクラスなど)はこのトピックを完全にスキップしました。そして、例えば、知っていることpredicate logicは絵を描くのに役立つER diagramかもしれないが、要件ではないかもしれないと思う。 アップデート5/27/2012)回答ありがとうございます。今、私logicはCSの膨大なアプリケーションの重要性を完全に理解し、同意していると思います。Windowsブルースクリーンの問題の解決策によって得られた印象から、本当に最高の答えを選んだだけです。
14 logic 

1
浮動小数点の丸め
IEEE-754の浮動小数点数<1(つまり、数値> = 0.0および<1.0を生成する乱数ジェネレーターで生成)に整数(浮動小数点形式)を掛けて、それ以上の数値を取得できますか丸めのためにその整数? すなわち double r = random() ; // generates a floating point number in [0, 1) double n = some_int ; if (n * r >= n) { print 'Rounding Happened' ; } これは、Rが存在し、RがIEEE-754で表現できる1未満の最大数である場合、N * R> = N(*および> =が適切なIEEE- 754人のオペレーター) これは、このドキュメントとpostgresql ランダム関数に基づいたこの質問から来ています

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