問題タブ [computer-science]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
computer-science - ベクターとレイヤーのデータ構造
私は混乱しているコードを扱っていますが、データ構造を理解していないだけなのだろうかと思っています。私が扱っているデータは、ベクターとレイヤーを利用しています。ベクトルは単なるデータの行だと思いますが、よくわかりません。
これらの使用について、あなたが提供したり、私に指摘したりできる情報は、非常に役に立ちます。
recursion - 再帰から反復への道
私は単純な問題を解決するために長年のプログラミングで再帰をかなり使用してきましたが、メモリ/速度の問題のために反復が必要になる場合があることを十分に認識しています。
そのため、非常に遠い昔、反復への一般的な再帰アプローチを変換する「パターン」またはテキストブックの方法が存在するかどうかを試してみましたが、何も見つかりませんでした。または、少なくとも私が覚えていることは何も役に立ちません。
- 一般的なルールはありますか?
- 「パターン」はありますか?
computer-science - オンライン コンピュータ サイエンスの記事のリポジトリ?
複雑なアルゴリズムが必要な場合は、まず、関連するものが既にインターネット上で公開されているかどうかを確認します。10回に10回は、私が考えていたよりもはるかに賢い解決策を誰かがすでに考え出していることに気付くでしょう。
一般的な Google 検索とは別に、私は以下を使用します。
- 大学からの優れた理論的レポートがたくさんあるCiteseer
- ドブ博士のポータルCiteseer よりも実用的ですが、特定の技術や言語に特化しすぎていることがよくあります
- Arxivさらに理論的にはドラフトとプレプリントが含まれています(私が必死になっている場合に備えて:))
また、いくつかの興味深い記事を含むJ.UCS (Journal of Universal Computer Science)も見つけました(ただし、そこで見つけた情報を実際に使用したことはありません)。
優れた CS 記事を無料で検索して読める場所を他に知りませんか?
testing - コードカバレッジとは何ですか? また、それをどのように測定しますか?
コードカバレッジとは何ですか? また、それをどのように測定しますか?
テスト コード カバレッジの自動化に関して、この質問を受けました。自動化されたツール以外では、科学というよりはアートのようです。コード カバレッジの使用方法の実例はありますか?
apache-flex - これはコンピューターサイエンスでは何と呼ばれていますか?
多くのプログラミング言語とフレームワークは、名前が見つからないように見える何かを行う/許可する/必要とします。彼らが基本的に行うことは、変数/オブジェクト/クラス/関数に名前でバインドすることです。
Flexの例 ("selectAll()"):
メイトの例 (「価格」):
Java の例 ("Foo"):
他にもたくさんの例があります。あなたはアイデアを得る。私が困っているのは、コンパイル時にこれを検証する方法が事実上なく、IDE がコード補完、ナビゲーション、およびリファクタリングに関してできることはほとんどないことです。しかし、それは重要なことではありません。
私の質問は、これは何と呼ばれていますか? これらのいずれかではないと思います:動的バインディング、名前バインディング、リフレクション
更新: いいえ、これはクイズではありません。プログラミングは単に「その曲に名前を付ける」だけです。
更新:役に立った回答:
- Tim Lesher より: 「遅延バインディング」、「動的バインディング」、または「ランタイム バインディング」と呼ばれます。文字列でバインドするという事実は、単なる実装の詳細です...
- Konrad Rudolph から: ...これは単なるインタプリタへの入力です。
更新: 人々が正しく指摘したように、いくつかの例は遅延バインディングであり、いくつかはリフレクションであり、いくつかは実行時評価 (解釈) などです。ただし、それらすべてを説明する名前はおそらくないと結論付けています。これは共通点のある例の集まりにすぎませんが、名前を付けるには不十分です。「すべてが文字列である」という答えが気に入りましたが、面白いとはいえ、完全に正しいとは言えません。
computer-science - ステート マシン、チューリング マシンなどを描画してテストするプログラムはありますか?
感謝祭の後に学校に戻ったら、決定論的および非決定論的な有限状態マシン、チューリング マシン、プッシュダウン オートマトンなどのトピックを扱う CS 理論のコースを受講します。ただし、それらを視覚的に表現し、それらがどのように機能するか (合格/不合格など) をテストできる優れたアプリケーションは見つかりませんでした。私がこれまでに見つけた最高のものはjFlapですが、かなり扱いにくいと感じています。
recursion - 再帰とビッグオー
私は最近、再帰と Big-O 記法を含むコンピューター サイエンスの宿題に取り組んでいます。私はこれをかなりよく理解していると思います (ただし、完全ではないことは確かです!)。奇妙なことに、それを見ると、宿題の中で最も単純なもののように見えます。
次の再発の解決策として、big-Oh 表記法を使用して最高の成長率を提供してください。
T(1) = 2
T(n) = 2T(n - 1) + 1 for n>1
選択肢は次のとおりです。
- O(n log n)
- O(n^2)
- O(2^n)
- O(n^n)
大きな O が上限として機能し、プログラムまたはプロセスにかかる最大の計算量または最大実行時間を表すことを理解しています。この特定の再帰は O(n) であるべきだと思います。なぜなら、再帰は n の値ごとに 1 回しか発生しないからです。n が利用できないので、他の 3 つのオプションである O(nlogn) よりも良いか、悪いかのどちらかです。
だから、私の質問は: なぜこれは O(n) ではないのですか?
c - 関数ポインタ、クロージャ、ラムダ
私はちょうど今、関数ポインタについて学んでいます。このテーマに関する K&R の章を読んでいるときに、最初に私を襲ったのは、「ねえ、これはクロージャのようなものだ」ということでした。この仮定が根本的に間違っていることはわかっていましたが、オンラインで検索した後、この比較の分析は実際には見つかりませんでした.
では、C スタイルの関数ポインターがクロージャーやラムダと根本的に異なるのはなぜでしょうか? 私が知る限り、匿名で関数を定義するのではなく、関数ポインターがまだ定義済みの (名前付きの) 関数を指しているという事実に関係しています。
関数に関数を渡すと、関数に名前が付けられていない 2 番目のケースの方が、通常の日常的な関数が渡される最初のケースよりも強力であると見なされるのはなぜですか?
この 2 つを厳密に比較することがなぜ間違っているのか、どのように間違っているのか教えてください。
ありがとう。
functional-programming - 参照透過性とは何ですか?
参照透過性という用語はどういう意味ですか?「equalsをequalsに置き換えることができる」と説明されていると聞きましたが、これは不十分な説明のようです。
computer-science - 高齢者のためのコンピュータサイエンス
クラスでCだったときにC++を学びました。XML やガベージ コレクションなどの新しいテクノロジがますます嫌いになっていることに気付きました。その一方で、Lua や Python などのスクリプト言語を発見しました。そして、決定論的なメモリ制御、埋め込みスクリプト言語、ガベージ コレクションなどを備えた C++ のハイブリッド環境が好きであることがわかりました。
私の問題は、これらの言語を学ぼうとすると、ラムダ、クロージャーなど、よくわからない用語に直面することです。
高齢者が最新情報を入手するためのオンライン リソースには、どのようなものがありますか?