コンピュータサイエンス

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

9
サイズが大きくなると簡単になる問題はありますか?
これはばかげた質問かもしれませんが、入力のサイズが大きくなるにつれて実際に簡単になる問題がある可能性はありますか?実用的な問題はこのようなものではないかと思いますが、この特性を持つ退化した問題を発明できるかもしれません。例えば、おそらく、それは大きくなるか、または他の奇妙な方法で動作するときに「それ自体を解決」し始めます。

6
分散コンピューティングと並列コンピューティング
私はよく人々が並列コンピューティングと分散コンピューティングについて話しているのを聞きますが、2の間に明確な境界はないという印象を受けており、人々はそれをかなり簡単に混同する傾向がありますが、それは非常に異なると信じています: 並列計算は、マルチスレッド、または単一のCPUを最大限に活用する方法により密接に結合されています。 分散コンピューティングとは、分割と征服の概念を指し、異なるマシンでサブタスクを実行し、結果をマージします。 ただし、ビッグデータ時代に踏み込んだため、その違いは確かに失われつつあり、今日のほとんどのシステムは並列コンピューティングと分散コンピューティングの組み合わせを使用しています。 私が日々の仕事で使用している例は、Map / Reduceパラダイムを備えたHadoopです。これは、異なるマシンでタスクを実行するワーカーを備えた明確な分散システムですが、並列コンピューティングで各マシンを最大限に活用します。 今日の世界でどのように区別するのか、そして並列コンピューティングについてまだ話せるのか、それとも明確な区別がないのかを理解するためのアドバイスをもらいたいと思います。私にとっては、分散コンピューティングは過去数年で大きく成長したように見えますが、並列コンピューティングは停滞しているようです。これはおそらく、並列化よりも計算の分散について多くの話を聞く理由を説明できるでしょう。

6
なぜ乱数ジェネレーターを結合しないのですか?
擬似乱数ジェネレーターが使用される多くのアプリケーションがあります。したがって、人々は、それが欠陥であると後で見つけるためだけに素晴らしいと思うものを実装します。最近、Javascript乱数ジェネレーターでこのようなことが起こりました。RandUもずっと以前です。ツイスターのようなもののための不適切な初期シードの問題もあります。 通常のxor演算子で2つ以上のジェネレーターファミリーを組み合わせた例は見つかりません。java.SecureRandomやTwister実装などを実行するのに十分なコンピューター能力がある場合、なぜ人々はそれらを結合しないのですか?ISAAC xor XORShift xor RandUはかなり良い例であり、単一のジェネレーターの弱点が他のジェネレーターによって緩和されていることがわかります。また、組み込みアルゴリズムはまったく異なるため、数値をより高い次元に分配するのにも役立ちます。それらを組み合わせてはならないという基本原則はありますか? 真の乱数ジェネレーターを構築する場合、2つ以上のエントロピーのソースを組み合わせることをお勧めします。私の例は違いますか? 同じファミリに属する​​複数の線形フィードバックシフトレジスタが連携して動作する一般的な例を除外しています。

10
人間の計算能力:人間はチューリングマシンの停止問題を決定できますか?
チューリングマシンでは(チューリングマシンでの)停止の問題は決定できないことがわかっています。人間の心がこの問題にどれだけうまく対処できるか、チューリングマシンや汎用コンピューターの助けを借りて、何らかの研究がありますか? 注:明らかに、最も厳密な意味では、ノーと言うことができます。チューリングマシンは非常に大きく、1人の人間の寿命には読めないためです。しかし、これは無意味な制限であり、実際の質問には寄与しません。したがって、物事を均一にするためには、任意の寿命を持つ人間を想定する必要があります。 チューリングマシンTが適切な方法で表され、任意の長寿命の人間Hと任意の量のバッファー(紙+ペン)が与えられた場合、HはTが空の単語で停止するかどうかを判断できますか? 結果:答えが「はい」の場合、チューリングテストに合格する可能性のあるコンピューターがあれば解決しませんか?

5
重み付きグラフで、エッジの重みとしてゼロを使用できますか?
ランダムグラフを生成するスクリプトを作成しようとしていますが、重み付きグラフのエッジが0の値を持つ可能性があるかどうかを知る必要があります。 実際、0をエッジの重みとして使用できることは理にかなっていますが、ここ数日でグラフを操作しており、その例を見たことはありません。

8
対数複雑度のアルゴリズムの直観
、、およびような複雑さを十分に把握していると思います。O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)Θ(n2)Θ(n2)\Theta(n^2) リストに関しては、は定数ルックアップなので、リストの先頭を取得するだけです。 はリスト全体を検索する場所であり、はリスト内の各要素に対して1回ずつリストを検索します。O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)Θ(n2)Θ(n2)\Theta(n^2) と間のどこかにあることを知る以外に、を把握する同様の直感的な方法はありますか?Θ(logn)Θ(log⁡n)\Theta(\log n)O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)

3
ゼロ1整数線形計画法(ILP)でブール論理演算を表現する
ブール値を表すための変数を備えた整数線形プログラム(ILP)があります。さんは整数であると保持するために制限されている0または1()。xixix_ixixix_i0≤xi≤10≤xi≤10 \le x_i \le 1 線形制約を使用して、これらの0/1値の変数に対するブール演算を表現したいと思います。これどうやってするの? 具体的には、(ブールAND)、(ブールOR)、および(ブールNOT)に設定します。ブール値として0/1の明白な解釈を使用しています:0 = false、1 = true。が必要に応じて関連付けられるようにILP制約を記述する方法を教えてください。y1=x1∧x2y1=x1∧x2y_1 = x_1 \land x_2y2=x1∨x2y2=x1∨x2y_2 = x_1 \lor x_2y3=¬x1y3=¬x1y_3 = \neg x_1yiyiy_ixixix_i (これは、CircuitSATからILPへの削減を要求する、またはSATをILPとして表現する方法を要求するものと見なすことができますが、ここでは、上記の論理演算をエンコードする明示的な方法を確認します。)

3
依存型と改良型
誰かが依存型と絞り込み型の違いを説明できますか?私が理解しているように、絞り込み型には、述語を満たす型のすべての値が含まれます。それらを区別する依存型の機能はありますか? それが役立つ場合、Liquid Haskellプロジェクトを介して洗練された型、CoqおよびAgdaを介して依存型に出会いました。とはいえ、私は理論がどのように異なるかについての説明を探しています。

4
ハッシュ関数でmodとして素数を使用するのが最適なのはなぜですか?
1〜100のキー値のリストがあり、それらを11個のバケットの配列に整理したい場合、mod関数を作成するように教えられました。 H=kmod 11H=kmod 11 H = k \bmod \ 11 これで、すべての値が9行に次々と配置されます。たとえば、最初のバケットには0、11、22 0,11,22…0,11,22…0, 11, 22 \dotsます。2番目では1,12,23…1,12,23…1, 12, 23 \dotsなどがあります。 悪い子になって、ハッシュ関数として非プライムを使用することにしたとしましょう-テイク12.ハッシュ関数の使用 H=kmod 12H=kmod 12 H = k \bmod \ 12 値をハッシュテーブルにつながる0,12,24…0,12,24…0, 12, 24 \dots 最初のバケットで、1,13,25…1,13,25…1, 13, 25 \dots等秒でのように。 本質的には同じものです。衝突を減らさなかったし、素数ハッシュコードを使用して物事をうまく分散させることもしなかったので、それがどのように有益であるかわかりません。


9
建設的な証明の実際の影響は何でしょうか?
私は問題を高度に理解しており、提供されたソリューションで真であることが絶対に「証明」された場合、コンピューターサイエンスの領域内の多くの問題を解決するための扉が開かれることを理解しています。P= NPP=NPP=NP 私の質問は、誰かが議論の余地のない、建設的な証拠を公開する場合、そのような発見について私たちが目にするであろう即時の効果のいくつかは何ですか? P= NPP=NPP=NP 5〜10年後に世界がどのようになるかについての意見を求めているのではありません。代わりに、これは根本的に解決不可能な問題であり、計算方法を根本的に変える可能性があるという私の理解です...今日は簡単に計算できない多くのこと(ええ、これは私の無知が示されている場所です...) 。 徹底的で正確かつ建設的な証拠は、実際の世界にどのような種類のほぼ即時の効果をもたらすでしょうか?P= NPP=NPP=NP

6
誰もがP≠NPであると信じているのなら、なぜP≠NPの証明の試みに対して誰もが懐疑的ですか?
多くの人はを信じているように見えますが、多くの人はこれがこれまでに証明される可能性が非常に低いと信じています。これに矛盾はありませんか?そのような証明がありそうもないと思うなら、な議論が欠けていると信じるべきです。あるいは、可能性が低いという良い議論があります。同様に、多数のリーマン仮説が保持されている、または既存の素数の距離の非常に高い下限、つまり距離が小さい。ツインプライム予想?P≠NPP≠NPP\ne NPP≠NPP≠NPP\ne NPP≠NPP≠NPP\ne NP

6
プログラミング言語がチューリング完全であるための最低限の基準はありますか?
プログラミング言語をチューリング完全と見なすために、プログラミング言語にプログラミング言語構成体のセットが存在しますか? wikipediaから言えることから、言語は再帰をサポートする必要があります。または、一見、停止せずに実行できる必要があります。これですべてですか?

8
整数配列の最速のソートアルゴリズムは何ですか?
私は高校時代に多くの分類アルゴリズムに出会いました。ただし、どれが最速かはわかりません(整数のランダム配列の場合)。だから私の質問は: 現在知られている最速のソートアルゴリズムはどれですか? 理論的には、さらに速いものがある可能性はありますか?それで、ソートの最小の複雑さは何ですか?

4
コンパイラの時間の複雑さ
コンパイラの時間の複雑さに興味があります。考慮すべきコンパイラ、コンパイラオプション、変数が多数あるため、これは明らかに非常に複雑な質問です。具体的には、LLVMに興味がありますが、人々が持っていた考えや研究を始める場所に興味があります。かなりグーグルはほとんど何も明らかにしないようです。 私の推測では、指数関数的ですが、実際の時間にはほとんど影響しない最適化手順がいくつかあると思います。たとえば、数値に基づく指数関数は関数の引数です。 私の頭の上から、私はASTツリーの生成は線形であると言うでしょう。IR生成では、増加し続けるテーブルの値を検索しながらツリーをステップスルーする必要があるため、またはO (n log n )となります。コードの生成とリンクは、同様のタイプの操作になります。したがって、現実的に成長しない変数の指数関数を削除した場合、私の推測はO (n 2)になります。O (n2)O(n2)O(n^2)O (n ログn )O(nlog⁡n)O(n\log n)O (n2)O(n2)O(n^2) 私は完全に間違っている可能性があります。誰もそれについて何か考えがありますか?
54 compilers 

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