問題タブ [top-down]
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.
algorithm - O (k) 時間で n=2^k 個の要素を持つ 2 つのヒープをマージするアルゴリズムを実装する方法は?
しかし、私はこの問題が何を意味するのかさえ知りません。
これは、2つのソートされた配列をマージするのに最小時間O(n)しかかかりません。O(k)時間でマージする方法がわかりません。
これは、それに関連する合計 3 つの問題です。
この問題の目的は、標準ヒープをトップダウン方式で効率的に構築する可能性を探ることです。
それぞれ正確に n = 2^k 要素を含む 2 つの標準ヒープをマージするアルゴリズムの概要を説明してください。アルゴリズムは O(k) 時間で実行する必要があります。
パート 1 で指定されたサブルーチンを使用して、2^n 要素のヒープを構築する再帰的または反復的アルゴリズムを与えます。
パート 2 で指定したアルゴリズムの実行時間の方程式を書き留め、それを解きます。
search - トップダウン ツリーの検索と置換
ツリー検索と置換アルゴリズムのコーディングに問題があります。入力ツリーには、任意にネストされたデータ項目が含まれます。たとえば、tree = (1 (2 3 (4 (5)) 6)) のように、1 がルートで、下の各レベルは括弧で囲まれています。したがって、1 はレベル #1 です。2、3、4、6 はレベル #2 (1 未満)、5 はレベル #3 (4 未満) です。ツリー全体は、任意のリストの car が常にデータ項目であり、その後に他のデータ項目またはサブツリーが続くように構造化されています。問題は、入力項目に一致するツリー内のデータ項目 (私の特定のケースでは #'equal) を見つけ、既存の古い項目を特定の新しいサブツリーに置き換えることです。したがって、ツリーは置換ごとに成長します。ただし、検索はツリー内でトップダウンに進み、最初に見つかったそのような olditem のみを交換してから終了する必要があります。
いくつかの観察?: 1) 二分木の場合、検索順序 (トップダウンの訪問) は通常レベル順と呼ばれ、他の可能な検索順序は前順、インオーダー、および後順ですが、私のツリーは必ずしも二分法ではありません。2) 幅優先探索アルゴリズムのようなものが機能する可能性がありますが、ノードは生成されるのではなく、ツリー トラバーサルによって選択されます。3) 標準の「置換」機能は、ツリーではなく、シーケンスに対してのみ機能します。4) 「subst」関数はツリーに対して機能しますが、一致するすべてのアイテムを置換する深さ優先の方法でトラバースするように見え、最初の置換後に停止する :count キーワード (「substitute」のように) がありません。
適切なアプローチをコーディングしたり、フレーミングしたりするのに役立つヘルプをいただければ幸いです。(また、なぜ common-lisp がリストとベクトルの両方に対してより多くの「ツリー」関数を持っていないのか不思議です。)
strategy-pattern - 導入「ボトムアップ」と洗練された「トップダウン」でデータを扱うアプローチ
(この質問は、プログラミングではなく、データ精製への戦略と高レベルのアプローチに関するものです。そのため、トピックから外れている場合は...前もって申し訳ありませんが、より良いstackexchangeコミュニティを見つけることができませんでした)
したがって、私たちは、多数のユーザーによって新しいデータが導入され (ボトムアップの貢献)、モデレーター/管理者/信頼できるユーザーによって定期的に洗練、修正、分類、強化される (トップダウンの洗練) という (典型的な) シナリオにいます。
このシナリオは、Web サイトでは非常に一般的です (stackexchangetags
が良い例です)。
労力を最小限に抑え、データの品質を最大化するための「最善の戦略」はありますか?
ここでいくつかの疑問があります:
- データが検証プロセスに合格するように強制するか、システムにデータを入力させ (一定のレベルの誤り/不一致を受け入れ)、発生した最も人気のあるものを修正/強化します。
- ボトムアップの到着を予測して、できるだけ多くのデータをシステムにトップダウンで事前入力します。
- ボトムアップ エントリが他のデータと一貫性を保つのに役立ちます (ユーザー向けのオートコンプリートと意味ボックス)。
c++ - SFML との c++ プレーヤー壁の衝突
友人と私はトップダウン パズル ゲームを開発しています。
壁を歩いて衝突できるプレイヤー クラスを既に実装していますが、問題は衝突自体の後です。
例:
プレイヤーが右側の壁にぶつかると、x
軸の速度が0に設定され、プレイヤーは停止します。しかしその後、ユーザーがupキーを押すと、プレーヤーは 1 ピクセル上に移動し、再び停止します。
その後、右と上を交互に押し続けると、プレイヤーはピクセルごとに壁を通り抜けます。
そして、ここにプレーヤーの衝突検出があります:
簡単なメモ:このintersect(x, y, w, h)
関数はプレーヤー クラスの一部です。必要な場合はお知らせください。
コードに関する返信をお送りいただくか、解決策を見つけることができる場所へのリンクをお送りいただければ幸いです。
助けてくれてありがとう、そして必要なら質問してください、アラドとロン。