0

指定された n ピクセルを使用して point_a から point_b に移動するアルゴリズムが必要です (または、[ピクセルより大きい領域を持つ] 正方形を 1 ピクセルと見なすことができます)。例: デカルト プランで、point_a = (0,0)、point_b = (100, 150)、n = 350 の場合、アルゴリズムを次のように動作させたい: point_a + point_b が n に等しい場合、最終地点(x = 100, y = 150)まで直進しますが、上記の条件が偽の場合は、上記の条件が真になるまで計画を歩き回り、真になるとそのポイントに直行します。

上で引用したアルゴリズムの何かについて考えていました。私の問題は、アルゴリズムが n より多くも少なくも費やすことができないことです。正確に n でなければなりません。

私は現在Luaを使用していますが、それは問題ではありません。私がここで望んでいるのは、実際に自分のアイデアを改善することであり、別のアイデアを準備することではありません.

4

2 に答える 2

1

使用している距離測度がわかりません。(0,0)から始めて(3,4)に行きたい場合、5ステップ(ユークリッド距離)または7ステップ(マンハッタン距離)ですか?ユークリッド距離を使用している場合、不合理な距離にどのように対処しますか?

私はあなたがマンハッタン距離を使用していると仮定しており、確率論的解決策を提案しています。

目的地からmステップ離れており、nステップ(n> = m)でそれを行う必要があると仮定します。現在の状態を(m、n)と定義しましょう。目標に向かって一歩進むと、問題の状態は(m-1、n-1)になり、目的地から遠くなると、状態は(m + 1、n-1)になります。

各ポイントで、現在の状態p = 3 * m /(3 * m +(nm))を使用して目的地に向かう確率を計算します。0から1までの乱数を生成し、それがpより小さい場合は宛先に向かって進み、そうでない場合は宛先から遠くに進みます。

def nextmove(m,n):
    p = 3.0*m/(3*m + (n-m) )
    if random.random() <=p:
        return m-1,n-1,'towards'
    else:
        return m+1,n-1,'farther'
于 2012-05-01T23:36:59.937 に答える
1

パスがどのように見えるかについての好みはありますか?アルゴリズムが最初に直線を移動し、次にすべてのステップが使い果たされるまで最後の正方形で前後に移動し続けるのはどうですか?または、少し見栄えの良いアルゴリズムは次のようになります。

pointAが(0,0)、pointBが(0、p)であるとすると、パスA-> C-> Bの長さがnになるようなpointC(x、0)を見つけます。簡単にx=sqrt(n ^ 2-p ^ 2)を得ることができます。n == pの場合、c = 0は、直線に進むことを意味します。

于 2012-05-01T23:35:58.767 に答える