-1

与えられた課題の背後にある数学について助けが必要です。問題は、アリからキャンディーまでの距離を計算することでした。キャンディーは常に箱の上にあり、アリは側面以外のどこにでもいることができます。アリは上と横を這うことができますが、飛ぶことはできません。アリとキャンディーの座標が 6 つの数字で示されます。最初の 3 つはアリ、次の 3 つはキャンディーです。私が抱えている問題は、3番目のサンプル入力(0 0 0 5 4 3.0)にあります。彼らはどのようにして答えとして 8.60 単位を得るのでしょうか? 上の距離が 3 でコーナーまでの距離が 6.40 の場合、合計は 9.40 になります。私の推測では、彼らは上昇中に角を切ったのですが、そのような最短の長さを見つけるための式を作成する方法がわかりません. ご協力ありがとうございます :D さらに詳しい情報が必要な場合は、お問い合わせください。

ボックスは、x、z、y 形式で (5,4,3) です。

Sample Input:                       
3 1 3 3 3 3            
2.25 0 2 2.5 2 3          
0 0 0 5 4 3.0   
0 4 3 5 0.0 3        
5 0 3 5 4.00 3           

Sample Output:               
Shortest distance = 2.00 units            
Shortest distance = 3.01 units        
Shortest distance = 8.60 units             
Shortest distance = 6.40 units            
Shortest distance = 4.00 units
4

1 に答える 1

1

まず、gap_j が指摘したように、これは明らかに間違った領域にあります。そうは言っても、答えは微積分にあります-導関数をゼロに設定し、最小値を特定する必要があります。あなたが提供した寸法と 1 つまたは 2 つの推論に基づいて、ボックスは x 軸で 5 単位、y 軸で 4 単位、z 軸で 3 単位です。これは、お気づきのように、最初に z 軸を上に移動することによる最短距離が 9.40 単位になることを意味します。

p(z) = z + sqrt(x 2 + y 2 )

最初に軸に沿って直接移動することに関して、他に 2 つのオプションがあります。x-first と y-first:

p(x) = x + sqrt(y 2 + z 2 )

p(y) = y + sqrt(x 2 + z 2 )

これらのパスの値は、それぞれ 10 (正確) と 9.83 です。

p = 8.6問題で与えられたものを達成するためには、x 軸に沿って次のような距離aが必要です。

p(a) = sqrt((x - a) 2 + z 2 ) + sqrt(y 2 + a 2 )

それ以外の場合は、次のような y 軸に沿った距離b :

p(b) = sqrt((y - b) 2 + z 2 ) + sqrt(x 2 + b 2 )

p(a)または値p(b)は、軸に沿って直接移動するよりも小さくなければなりません。には無数のそのような値がありますp(a)

これはおそらく微積分のクラスの宿題なので、導関数を見つけるのはあなたに任せますが、式は提供されているとおりです。変数は 1 つしかないので、これは特に難しいことではありません。もちろん、これらは一般化することができ、結果を計算してより短いパスを特定するのはかなり簡単なタスクです。

于 2013-05-10T19:52:05.727 に答える