コンピュータサイエンス

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

5
実行中のマシンコードは実際どのように見えますか?
マシンコードが実際にハードウェアとCPUによって実行されているとき、それはどのように見えますか? 1と0で表される命令のように、バイナリのように見えますか、それともオペコードがバイトコードのような2進数に分解できる16進数として表されるバイトである16進数で構成されるものでしょうか?

6
πやeなどの無理数を使用して乱数を生成できますか?
、、およびような無理数には、小数点の後に一意の非反復シーケンスがあります。このような数値から番目の数字を抽出し(はメソッドが呼び出される回数)、数字をそのまま使用して数字を作成する場合、完全な乱数ジェネレーターを取得する必要はありませんか?たとえば、、および場合、最初の数値は123、2番目の数値は471、次の数値は184などです。ππ\pieee2–√2\sqrt{2}nnnnnn2–√2\sqrt{2}eeeππ\pi


5
計算のより高いレベルの説明に逃げることにより、停止問題を「解決」できますか?
最近、停止問題の決定不能性に関するチューリングの証明がラッセルの理髪師のパラドックスに非常に似ているという興味深い類推を聞いたことがあります。 だから私は不思議に思いました:数学者は最終的に、Cantorの素朴な定式化からより複雑な公理系(ZFC集合論)に移行し、重要な除外(制限)と途中での追加を行うことで、集合論を一貫させることに成功しました。 したがって、チューリングマシンよりも強力で表現力のある一般的な計算の抽象的な記述を試してみて、それを使用して、実存的証明または場合によっては停止問題を解決するためのアルゴリズムを取得することもできます任意のチューリングマシン?

8
すべてのデータ型は、ポインターを持つノードに要約されますか?
配列またはベクトルは単なる値のシーケンスです。リンクリストを使用して確実に実装できます。これは、次のノードへのポインタを持つ単なるノードの集まりです。 スタックとキューは、Intro CSコースで一般的に教えられる2つの抽象的なデータタイプです。クラスのどこかで、学生はリンクされたリストを基礎となるデータ構造として使用してスタックとキューを実装する必要があります。つまり、同じ「ノードのコレクション」の考え方に戻ります。 優先キューは、ヒープを使用して作成できます。ヒープは、ルートに最小値を持つツリーと考えることができます。BST、AVL、ヒープを含むあらゆる種類のツリーは、エッジで接続されたノードのコレクションと考えることができます。これらのノードは、1つのノードが別のノードを指すようにリンクされています。 すべてのデータ概念は、他の適切なノードへのポインターを持つノードのみに常に要約できるようです。そうですか?これが単純な場合、教科書は、データが単なるポインターを持つノードの集まりであると説明していないのはなぜですか?ノードからバイナリコードへの移行方法

3
私たちはそれが何であるかを知りませんが、存在する可能性のあるアルゴリズムはありますか?
数学では、非構成的な存在証明がたくさんあります。そのため、特定のオブジェクトが存在することはわかっていますが、それを見つける方法はわかりません。 コンピューターサイエンスでも同様の結果を探しています。特に、アルゴリズムを表示せずに決定可能であることを証明できる問題はありますか?つまり、アルゴリズムで解決できることはわかっていますが、アルゴリズムがどのように見えるのかわかりませんか?


6
in O(n)time:比較が推移的でないセット内で最大の要素を見つける
タイトルは質問を述べています。 入力として要素のリストがあり、比較することができます(どちらが最も大きいかを判断します)。要素を等しくすることはできません。 キーポイント: 比較は推移的ではありません(じゃんけんを考えてください):これは本当です:A> B、B> C、C> A (ここに有効な答えがないので、これは有効な入力ではないことに注意してください。非推移的比較」という意味) 各入力配列には答えがあることが保証されます 最大は、要素が他のすべての要素よりも大きくなければならないことを意味します 逆の性質が成り立つ、すなわちA> BはB <Aを意味する 例: Input: [A,B,C,D] A > B, B > C, C > A D > A, D > B, D > C Output: D O(n)時間でこれを行う方法がわかりません。私の最善の解決策はO(n ^ 2)です。 答えを確実にするために、要素が他のすべての要素と明示的に比較され、それが実際に答えであることを証明する必要があるという事実のために、すべてのアプローチにこだわっています(比較は推移的ではないため)。 これは、ヒープ、ソートなどの使用を除外します。

2
プログラミングのカテゴリー理論(ではない)?
Haskellやそれほど純粋ではないFP言語を学んだ後、カテゴリ理論について読むことにしました。カテゴリー理論をよく理解した後、私はカテゴリー理論の概念を使用してプログラムの設計を考える方法について考え始めましたが、どんなに一生懸命試みても、これは進むべき道ではないようです。 カテゴリー理論をプログラムの設計に関連付けるための多くの失敗した試みを費やした後、私は次のような結論に達しました: カテゴリ理論は、プログラミング言語を設計するときに役立ちます。 カテゴリ理論は、プログラムを設計するときに使用するものではありません(カテゴリの原則に基づいて設計された言語を使用する場合でも)。例:Haskellでプログラミングする場合、カテゴリ理論の概念ではなく、型、型コンストラクタ、関数、高階関数などを使用してプログラムを設計します。 要約すると、下層システムがあります(順序は低から高です): カテゴリ理論->プログラミング言語->プログラム 特定のレイヤーでは、直下のレイヤーの概念を使用します。 この理解は正しいですか?そうでない場合は、プログラムの設計でカテゴリ理論の概念を直接使用できると考えている場合は、いくつかの記事またはブログの投稿を参照してください。 注:プログラムを設計するということは、並行性、並列処理、リアクティブ、メッセージパッシングなどのさまざまな概念に基づいてプログラムを設計することを意味します。

2
「サブセット製品」の問題はNP完全ですか?
サブセット合計問題は、古典的なNP完全問題です。 数字のリストとターゲットが与えられた場合、合計がになる数字サブセットはありますか?LLLkkkLLLkkk 学生から、「サブセット製品」問題と呼ばれるこの問題の変種がNP完全かどうかを尋ねられました。 数値のリストとターゲットが与えられた場合、積がからの数値のサブセットはありますか?k L kLLLkkkLLLkkk 私はいくつかの検索を行ったが、おそらく私はそれらを逃したが、この問題について話しているリソースを見つけることができなかった。 サブセット製品の問題はNP完全ですか?

7
多くの類似したpng画像のこれらの(ロスレス)圧縮方法が効果的でないのはなぜですか?
私はちょうど次のことを見つけました:png画像の複数の同一のコピーをフォルダに入れてから、次の方法でそのフォルダを圧縮しようとしました: tar czf folder.tar.gz folder/ tar cf folder.tar folder/ && xz --stdout folder.tar > folder.tar.xz (これは同一の画像ではうまく機能しますが、類似の画像ではゲインはゼロです) zip -r folder.zip folder/ 私はの大きさをチェックすると.tar.gz、.tar.xz、.zip私はそれはほとんどのものと同じであることに気づきましたfolder/。 png画像自体は高レベルの圧縮を行う可能性があるため、それ以上圧縮できないことを理解しています。ただし、多くの類似(この場合は同一)のpng画像をアーカイブにマージしてからアーカイブを圧縮すると、必要なサイズが著しく減少することが予想されます。同一の画像の場合、私はほぼ単一の画像のサイズのサイズを期待します。

12
コンピューターを使用せずにコンピューターサイエンスを教えるにはどうすればよいですか?
世界のいくつかの場所では、人々は通常コンピューターにアクセスできないため(したがって、コンピューターの知識がほとんどありません)、ハードウェアとソフトウェアは時代遅れであり、停電などに悩まされています。(良い)本へのアクセスも不足する傾向があります。このような状況でコンピューターサイエンスを教えるにはどうすればよいですか? 実験をして、彼らが学んだことを応用することができなければ、彼らは信じられないほどやる気があり、ほとんどの時間をこの趣味に捧げても、まったく(よく)学ばないのではないかと心配しています。CSを理論的にのみ教えることは可能ですか?
21 education 

3
人工知能はいつ学ぶべきですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 去年閉鎖されました。 まっすぐに:私は本当にAIを学びたいです。 しかし、私は、いつ人工知能に飛び込むべきかについて、経験豊富なCSの人たちからのアドバイスが欲しいです。 AIの概念をよりよく把握するには、どのような前提条件が必要ですか?

9
公正なコインを与えられたダイをシミュレートする方法
公正なコインが与えられ、公正な(6面の)ダイスを繰り返し反転する確率分布をシミュレートしたいとします。私の最初のアイデアは、2 k = 6 mのような適切な整数を選択する必要があるということです。そうコイン投げた後のk回、我々は範囲を分割することにより、ダイの出力にK個の長さのビット列によりコード番号をマッピングする[ 0 、2 のk - 1 ] 6にインターバル長の各M。ただし、2 kには2つの唯一の素因数がありますが、k,mk,mk,m2k=6m2k=6m2^k = 6mkkk[0,2k−1][0,2k−1][0,2^k-1]mmm2k2k2^kは3が含まれます。これを行う他の簡単な方法があるはずですよね?6m6m6m

5
関数型プログラミング以外のラムダ計算?
この質問は、コンピューターサイエンススタック交換で回答できるため、理論的なコンピューターサイエンススタック交換から移行されました。 7年前に移行され ました。 私は大学生です。現在、ラムダ計算を勉強しています。ただし、これがなぜ私にとって役立つのかを正確に理解するのはまだ困難です。関数型プログラミングをたくさん行うと便利かもしれませんが、関数型プログラミングを学ぶのにそれは本当に必要ではないと思います、どう思いますか? 第二に、コンピューターサイエンスの領域内ではあるが関数型プログラミング言語以外でのLambda Calculusの使用はありますか?

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