2016-10-17 6 views
0

最近、私はChef and Three dogsとして知られているコーデックの質問に出くわしました。質問はかなり簡単に見えるが、私は論理を得ていない。質問は以下の通りです:シェフと3匹の犬の解決

シェフは、正三角形の頂点に座っている3匹の犬を持っています。三角形の各辺の長さはsメートルに等しい。シェフが「スタート!各犬は毎秒一定の速度vメートルで走り始める。それぞれの犬はそれぞれの瞬間に、彼のすぐ右の犬に向かって走っています(反時計回りの方向)。したがって、それらの軌跡は、以下に示すように1点に収束する螺旋を形成しています。 sample example image as given is here:

私は正しい提出を行っていますが、答えが(2/3)*(s/v)である理由を理解できませんでしたか?

#include<stdio.h> 
int main() 
{ 
    int T,s,v; 
    double t; 
    scanf("%d\n",&T); 
    while(T--) 
    { 
     scanf("%d%d",&s,&v); 
     t = (2.0*s)/(3.0*v); 
     printf("%f\n",t); 
    } 
     return 0; 
} 
+0

このコードは、使用したコードを投稿した場合、このサイトにとってはより良い質問になります。 – chux

+0

@chuxほとんどの投稿(例:鉱山)は文字通りsとvのペアを読み取り、s/vの2/3倍を印刷します。シミュレーションで2/3になった。 –

+0

シミュレーションの結果を最もよく説明するには、使用したコードを投稿してください。 – chux

答えて

1

この問題は簡単に質問に定義された対称性を注目して可視化することができる。ここ

は、サンプルコードを受け入れています。

最初のステップは、3匹の犬の位置と動きに固有の対称性があるため、いつでもその位置は、図に示すように常に正三角形を形成することを理解することです。

enter image description here

は今、あなたは犬の1の上に座っていることを前提と(それは奇妙だが、それにもかかわらず、それを前提としています。P)。あなたにとって、正三角形は、最終的に崩壊するまでサイズの縮小を続け、犬が会う地点になります。だから、これはいつでもあなたの意見になるでしょう。イヌの一方の上に座って観察者に

enter image description here

、時間の任意の時点でその隣接犬の速度の成分は、第三の図で 示されています。それは、隣接犬は速度v/2でそれに向かって移動している速度vでその隣接犬に向かって移動している間

enter image description here

したがって、任意の所与の犬は と感じます。したがって、イヌは一定の割合でv + v/2 = 3v/2でお互いに接近しているようです。最初の距離はsであったので、これを満たすに要する時間はs/(3v/2) = 2s/3vです。

+0

解決していただきありがとうございますが、計算部分である最後の部分を理解する上で問題があります。 –

+0

2つの列車が速度vで互いに接近し、それらの間の開始距離がsであるとき、それらが互いに通るのにかかる時間= s/2vである。 '2v'は相対速度のために[クラス8の標準的な数学の問題を覚えています]。同様に、相対速度は、「v + vcos60」=「v + v/2」=「3v/2」である。時間= 's /(3v/2)' = '2s/3v'です。 –

+0

私はそれを手に入れます。非常に良い説明。 –

関連する問題