問題タブ [hilbert-curve]
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 - Codility の HilbertMaze タスク
Codility から次のタスクにアプローチする方法についてヒントを教えてください: https://codility.com/programmers/task/hilbert_maze/
迷路を生成し、BFS を使用して最短経路を検索することで、最短経路を見つけることができますが、最悪の場合の時間の複雑さは O(N) であると予想されるため、これは正しい方法ではないと思います行く。BFS の時間計算量は O(|V| + |E]) で、V は頂点の数、E はエッジの数です。たとえば、N = 3 の場合、サイズが 17x17 のグリッドがあり、3 ステップだけではパスを見つけることができないことは直感的に明らかです。
したがって、示された時間計算量が間違っていて、M^2 のようなものである必要があるか、グラフ アルゴリズムを使用せずに 2 点間の距離を単純に計算するための簡単なトリックがあります。与えられた 2 点のヒルベルト距離を計算するためのアルゴリズムをいくつか見つけました (ここで必要な場合)。これはビット操作などを使用しますが、まったく理解できませんでした。また、このタスクの目標は、既存の式を使用せずに距離を計算する方法を自分で見つけることだと思います。
このタスクを解決し、さらに私を助けてくれる人はいますか? ありがとう!
algorithm - ヒルベルト ポイント カーブをインクリメンタルに生成する一定時間アルゴリズムはありますか?
ヒルベルト キューブに関するウィキペディアの記事には、ヒルベルト曲線上の任意の点との間で任意のインデックスをエンコード/デコードする関数が含まれています。これらのアルゴリズムは一定時間ではありません。曲線上の実際のポイント (および、おそらくいくつかの必要な状態) を指定して、次のポイント (および次の状態) を生成する定数時間アルゴリズムはありますか?
正式には、 を適用するたびにヒルベルト曲線の次の点が得られ、それが最適であるように、 typeState
と tupleが必要です。これは、ウィキペディアで提示されているアルゴリズムには当てはまらない可能性があります。ここにあるインクリメンタル計算の機会。図:(initialState, nextState) :: (State, State -> ((Nat, Nat), State)
nextState
nextState
java - 座標行列を使用したアプレットのヒルベルト曲線
巡回セールスマン問題の解をヒルベルト曲線プログラムで近似しようとしています。私はアプレットを使ってそれをしなければなりません。コードにマトリックスを追加する方法と、アプレットに座標を表示する方法を教えてください。複数のフレームを持つ必要はありません。
コードは以下のとおりです。
マトリックスに都市を設定し、都市に到達したら都市間に線を引き、そこに到達するための最短経路を見つける必要があります。