2

小石商人がいます。彼は床を照らすために使用される小石を販売しています。彼の主な任務は、部屋の辺の長さを取ることです。しかし、彼は時々それを間違え、その間違いが損失につながります。それで、彼はあなたのところに来て、部屋の壁に沿って走り、その長さを計算できる小さなインテリジェントな車を作るようにあなたに頼みます.

車は出発点から戻らなければなりません。これは、開始点と終了点が同じであることを意味します。車が部屋の壁の長さを教えてくれたら、床の表面積を計算できます。

表面積がわかれば、床全体を小石で覆うための価格を計算できます。1平方メートルの面積を覆うのに3キログラムの小石が必要です。小石の料金は 1 キロあたり 5 ドルです。

たとえば、車の測定値は、2 つの配列を使用して示されています。

Array 1 = {L, R, L, R, R, L, R, R, L, R, R, L, R, L, L, R, Z}

Lは、車が左折したことを示します。 Rは、車が右折したことを示します。Z は、最終ターンが最後のターンの後であることを示します。次の図は、誤解を解消します (この例ではArray 1 = {L, R, R, R, Z})。

Array 2 = {3, 4, 2, 3, 2, 4, 5, 4, 2, 3, 2, 1, 2, 2, 2, 1, 2}

の要素はArray2、対応するターンを行った後に車が移動した長さ (メートル単位) を示します。

{3L, 4R, 2L, 3R, 2R, 4L, 5R, 4R, 2L, 3R, 2R, 1L, 2R, 2L, 2L, 1R, 2Z}

この表現では、次の転換点までの距離とともに、入口転換点からの方向が測定されていることがはっきりとわかります。の最後の要素ZArray1、 の対応する長さがArray2最終距離であることを表し、車はこの長さを走行した後にゴール地点に到達します。

与えられた写真の面積は 63 平方メートルで、それをカバーするための費用は 945 ドルです。

4

2 に答える 2

2

各頂点の各座標を保存するだけです。次に、これを使用して面積を計算します

最初に L,2 R,5 からコードを導出する必要があります ....

Start from origin(assuming downwards is +y and rightwards is +x on screen):

L,2---->go left 2 units.           Result: P1=(-2,0)
R,1---->turn right and go 1 units. Result: P2=(-2,-1)
R,3--->turn right and go 3 units.  Result: P3=(1,-1)

...
...

Lets say we have 3 points: P1=(-2,0), P2=(-2,-1), P3=(1,-1)
Area=0.5*abs(x1*y2+x2*y3+x3*y1-x2*y1-x3*y2-x1*y3)
    =0.5*abs(2+2+0-0+1-2)
    =0.5*3.0
    =1.5 units

次のように書くと、Wolframalpha.com は同じ結果 (1.5) を返します。

「三角形の面積 (-2,0) (-2,-1) (1,-1)」

これらすべてのポイントを Shoelace_formula のデータとして使用して、囲まれた領域を取得します これに関する数学は次のとおりです。

ここに画像の説明を入力

次に、これに小石/面積/お金のコストを掛ける必要があるだけです。

于 2012-09-03T09:31:12.667 に答える