問題タブ [complexity-theory]

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.

0 投票する
10 に答える
2765 参照

algorithm - これの計算の複雑さを減らすことはできますか?

さて、私はプログラムを非常に遅くしているこのビットのコードを持っています。これは線形複雑ですが、何度も呼び出されてプログラムを二次複雑にするためです。可能であれば、計算の複雑さを減らしたいと思いますが、それ以外の場合は、できる限り最適化します。これまでのところ、次のように削減しました。

私が見逃したものを見た人はいますか?ありがとう!

編集: 言い忘れました: n は常に素数です。

EDIT 2:これが私の新しい改良されたプログラムです(すべての貢献に感謝します!):

EDIT 3:実際のコンテキストでテストすると、はるかに高速です! この質問は解決されたように見えますが、多くの有用な回答があります。また、上記の最適化と同様に、Python 辞書を使用して関数をメモしました...

0 投票する
2 に答える
704 参照

complexity-theory - 仕様パターンを使用すると、コードの複雑さが本当に軽減されますか?

私の読書から、仕様パターンはデータをフィルタリングするために必要なメソッドの数を大幅に減らすことができるようです。仕様パターンを使用すると、どのようなメリットがありますか?あなたが気づいた予期せぬ利益がありましたか。逆に、どのような落とし穴に遭遇しましたか?

0 投票する
17 に答える
157433 参照

algorithm - 数値の配列から最小値または最大値を取得する最良の方法は何ですか?

数字の配列があるとしましょう:[2,3,3,4,2,2,5,6,7,2]

その配列の最小値または最大値を見つける最良の方法は何ですか?

現在、最大値を取得するために、配列をループして、既存の値よりも大きい場合は変数をその値にリセットしています。

これは、これを実行するための最良の方法とは思えません (可能な限りループを避けるようにしています)。

0 投票する
3 に答える
7907 参照

algorithm - このアルゴリズムの最悪の場合の時間計算量は?

0 投票する
9 に答える
420 参照

loops - 複雑さの分析で、++が2つの操作と見なされるのはなぜですか?

私のコンピュータサイエンスIIのクラスでは、教授は++、-、*=などを2つの操作と見なしています。ただし、アセンブリレベルでは、これは実際には2つの操作ではありません。誰かが説明できますか、それとも単純化のためだけですか?

0 投票する
12 に答える
3716 参照

php - Drupal の欠点にはどのようなものがありますか?

Drupal はまさに「何でもできる」CMS です。ほとんどすべての機能を追加できるモジュールがあります。これは素晴らしいことです。ただし、多くの機能 (v5 および v6) が散らばっており、ユーザーにとって直感的ではないように感じます。開発者として、風船ガムとひもを使ってサイトにパッチを当てたような感覚が残っています。

たとえば、デフォルトの検索ボックス (クリックすると消える) にテキストを追加するには、jQuery コードを追加するか、テーマをオーバーライドする必要があります。また、メニュー システムが必要以上に複雑であることもわかりました。

この意見を持つのは私だけですか?Drupal のコアについて、どのような点を (もしあれば) 変更しますか?

0 投票する
11 に答える
6141 参照

algorithm - 連続したストレージに依存しない O(1) ランダム アクセス データ構造はありますか?

古典的な O(1) ランダム アクセス データ構造は配列です。ただし、配列は、使用されているプログラミング言語に依存しており、保証された連続メモリ割り当てをサポートしています (配列は、ベースの単純なオフセットを取得して任意の要素を見つけることができることに依存しているため)。

これは、これを実装の詳細として残すのではなく、言語がメモリが連続しているかどうかに関するセマンティクスを持たなければならないことを意味します。したがって、O(1) のランダム アクセスを持ちながら、継続的なストレージに依存しないデータ構造を持つことが望ましい場合があります。

そのようなことはありますか?

0 投票する
5 に答える
897 参照

model-view-controller - ネットワーク理論とMVC

ビュー(フォーム)間の通信を許可しないMVCを設計しました。フォームが別のフォームと通信する必要がある場合、他のフォームがサブスクライブできるコントローラーでイベントを発生させます。一般的な考え方は、通信のパスを最小限に抑え、複雑さを抑えるのに役立つことです。各ビューは、シングルトンであるRootController、またはビューがRootControllerを介してアクセスするsubControllerと通信します。繰り返しになりますが、すべてがRootControllerを通過するため、通信パスはダウンしたままになります。

これは、ネットワークに追加するノードが多いほど、ネットワークが複雑になるという一般的なネットワーク理論に従っていますか。「そして」、これらのノードのそれぞれが直接通信するほど、ネットワークに複雑さが増します。誰かがこの領域/理論が正確に何と呼ばれているのかを指摘できますか?参照?

私がMVCで行っていることは、ネットワーク上のすべてのノードが中央ノードを経由して相互に通信することに似ていますか?

0 投票する
9 に答える
509 参照

arrays - 値がソートされた配列にあるかどうかを判断するのにかかる時間は何ですか?

5000 個の整数のソート済み配列があります。ランダムな整数が配列のメンバーであるかどうかは、どのくらいの速さでわかりますか? 一般的な答えとしては、C と Ruby がいいでしょう。

配列値の形式は次のとおりです。

ここでc、1 から 5000 までの任意の整数を指定できます。

例えば:

0 投票する
18 に答える
16524 参照

algorithm - コードの Big-O 効率をプログラムで取得する

特定の関数の Big-O 時間の複雑さを (少なくとも大まかに) 自動的に決定する方法があるかどうか疑問に思いますか?

O(n) 関数と O(n lg n) 関数をグラフにすると、どちらがどちらであるかを視覚的に確認できると思います。これを自動的に実行できるヒューリスティックなソリューションが必要だと思います。

何か案は?

編集:半自動化されたソリューションを見つけることができてうれしく思います.完全に手動の分析を回避する方法があるかどうか疑問に思っています.