ニュートンの重力理論では、2つの点質量の間の重力は
F =(Gm 1 m 2)/ r 2
どこ
- Gは重力定数です:6.674×10 -11 N・(m / kg)2
- m 1は最初のオブジェクトの質量です
- m 2は2番目のオブジェクトの質量
- rは、重心間の距離です。
チャレンジ
2つの単語間のプルをシミュレートする必要があります。各小文字には、アルファベットの位置によって与えられる質量があります。大文字には小文字の2倍の質量があります!いくつかのスペースで区切られた2つの単語と、正の整数の秒数sを含む文字列が与えられます。s秒後に文字列がどのように見えるかを出力します。
情報
- 単語は抽象的であるため、単位と定数の異なるセットがあります
- 質量:WMU(Word Mass Unit)-文字「a」の質量に等しい。
- 距離:em、1文字の長さ。
- フォース: N W(ワードニュートン)= WMU・em / s 2
- 重力定数:G = 1 N w・(em / WMU)2
- 最初の文字は、x軸の位置0に対応します。
- すべての計算は可能な限り正確に行う必要があり、最後にのみ最も近いemに丸めます。
- 微積分を使用する必要はありません。Fを毎秒再計算し、新しい加速度を速度に自動的に適用し、1秒後に位置に速度を適用する必要があります(例を参照)。
- 2つの単語が互いに衝突すると(など
catdog
)、それ以上移動しません。
重心
単語の重心は次の式で見つけることができます:
ここで、Mは単語の総質量、m iは文字の質量、r iは文字の位置です。
例:
(注:この例では表示されていませんが、大文字には対応する小文字の2倍の質量があることに注意してください。)
入力:cat dog
、2
まず、各単語の位置は何ですか?「cat」は位置0から始まり、「dog」は位置9から始まります。
- x c = 0およびx d = 9
次に、「猫」の重心を見つけましょう。
- 質量は24 WMU(3 + 1 + 20)です。
- R c = 1/24(3 * 0 + 1 * 1 + 20 * 2)= 41/24 = 1.70833 em
- 当然、質量の中心は文字「t」に非常に近いです。
それでは、「犬」の重心を取得しましょう
- R d = 1/26(4 * 9 + 15 * 10 + 7 * 11)= 263/26 = 10.11538 em
- したがって、犬の重心は文字「o」に近く、「g」に向かってわずかになります。
これで、2つの単語間の力を計算できます。
- F = 24 * 26 /(10.11538から1.70833)2 = 8.82871 N W
次に、この力を両方の単語に適用し、それらの加速を取得する必要があります
- a c = 8.82871 / 24 = .36786 em / s 2
- a d = -8.82871 / 26 = -.33957 em / s 2
上記の規則に従って、加速度を速度に適用するため、
- v c = .36786 em / s
- v d = -.33957 em / s
次に、速度を位置に適用します。1秒後に、
- x c = .36786 em
- x d = 9 -.33957 = 8.66043 em
- R c = 1.70833 + .36786 = 2.07619 em
- R d = 10.11538-.33957 = 9.77581 em
ここで、新しい位置で手順をもう一度繰り返します。
- F = 24 * 26 /((9.77581) - (2.07619))2 = 10.52558 N W
- a c = 10.52558 / 24 = .43857 em / s 2、a d = 10.52558 / 26 = -.40483 em / s 2
- v c = .36786 + .43857 = .80643 em / s、v d = -.33957-.40483 = -.74440 em / s
- x c = .36786 + .80643 = 1.17429 em、x d = 8.66043-.74440 = 7.91603 em
- R c = 2.07619 + .80643 = 2.88262 em、R d = 9.77581-.74440 = 9.03141 em
したがって、x = 1.17429で「cat」、x = 7.91603で「dog」になります。
- これらを最も近い整数に丸めて、「cat」が位置1に、「dog」が位置8に移動するため、出力は
cat dog
- これらを最も近い整数に丸めて、「cat」が位置1に、「dog」が位置8に移動するため、出力は
衝突の処理
新しい加速度は、毎秒速度にすぐに追加されることに注意してください。したがって、特定の時間に2つの単語が衝突する場合は、代数を使用して衝突点を見つけます。次の例をご覧ください。
- ワード1は4文字の長さです(|| w 1 || = 4)
- ワード2は4文字の長さです(|| w 2 || = 4)
- x 1 = 3、x 2 = 8
v 1 = 2、v 2 = -6
解決し
3 + (4-1) + 2t = 8 - 6t
ます。t = .25秒。衝突の位置はx col = 6.5です。そのため、x = 6とx = 7の間で衝突が発生しているように見えるはずです。####@@@@
。
衝突後の単語の位置の明示的な式は
- x 1 = floor(x col)-|| w 1 || +1
- x 2 = floor(x col)+1
xx a
(単語xx
との間に1つのスペースa
)。ニュートンの物理学では、a
感じる力x
は、2 emのx
距離からの引き寄せと、3 emの距離からの引き寄せによるものです。これは、逆二乗の法則により、emのX
距離2.5
(つまり、の重心xx
)から引き抜く単一の点質量の力とは