Теорія гравітації Ньютона говорить, що сила тяжіння між двома точковими масами є
F = (Гм 1 м 2 ) / r 2
Де
- G - гравітаційна константа: 6674 × 10 −11 N · (м / кг) 2
- m 1 - маса першого об’єкта
- m 2 - маса другого об'єкта
- r - відстань між їх центрами мас
Виклик
Вам потрібно змоделювати тяг між двома словами. Кожна мала літера має масу, задану її положенням в алфавіті. Великі літери мають вдвічі більше маси їхніх малих аналогів! Вам буде надано рядок, що містить два слова, розділені кількома пробілами, а також додатне ціле число секунд, s . Виведіть, як буде виглядати рядок через s секунд.
Інформація
- Оскільки слова абстрактні, вони мають різний набір одиниць і констант
- Маса: WMU (Word Mass Unit) - дорівнює масі літери 'a'.
- Відстань: em , довжина одного символу.
- Сила: N W (Word Newton) = WMU · em / s 2
- Гравітаційна константа: G = 1 N w · (em / WMU) 2
- Перший символ відповідає позиції 0 на осі x.
- Усі обчислення слід робити з якомога більшою точністю, лише в кінці ви обернетесь до найближчого.
- Вам не потрібно використовувати обчислення, просто потрібно перерахувати F кожну секунду, автоматично застосувати нове прискорення до швидкості, а через секунду застосувати швидкість до положення (див. Приклад).
- Після того, як два слова стикаються між собою (як
catdog
), вони більше не рухаються.
Центр меси
Центр мас слова можна знайти за такою формулою:
Де M - загальна маса слова, m i - маса букви, а r i - положення літери.
Приклад:
(Примітка. Хоча цей приклад не показує цього, пам’ятайте, що великі літери мають вдвічі більше маси їхніх малих аналогів.)
Вхід:, cat dog
2
По-перше, які позиції кожного слова? "кішка" починається з позиції 0, а "собака" починається з позиції 9, так
- x c = 0 і x d = 9
Далі знайдемо центр маси «кота».
- Він має масу 24 ВМУ (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
- Тож центр маси собаки близький до букви «о», трохи у напрямку до «g».
Тепер ми можемо обчислити силу між двома словами.
- F = 24 * 26 / (10.11538-1.70833) 2 = 8.82871 N ш
Тепер нам потрібно застосувати цю силу до обох слів і отримати їх прискорення
- 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 = -39397 ем / с
Потім застосовуємо швидкість до позиції, тож через одну секунду,
- x c = .36786 em
- x d = 9 -393957 = 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 ш
- 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
Таким чином, ми закінчуємо "cat" у x = 1,17429 та "dog" при x = 7,91603.
- Ми округляємо їх до найближчого цілого числа, тому "кішка" переходить до позиції 1, а "собака" переходить до позиції 8, тому вихід
cat dog
- Ми округляємо їх до найближчого цілого числа, тому "кішка" переходить до позиції 1, а "собака" переходить до позиції 8, тому вихід
Поводження зіткненнями
Пам'ятайте, що нове прискорення одразу додається до швидкості щосекунди. Тому, якщо в певний час стикаються два слова, використовуйте алгебру, щоб знайти точку зіткнення. Візьмемо цей приклад:
- слово 1 - 4 літери завдовжки (|| w 1 || = 4)
- слово 2 - 4 літери завдовжки (|| w 2 || = 4)
- х 1 = 3, х 2 = 8
v 1 = 2, v 2 = -6
Вирішити
3 + (4-1) + 2t = 8 - 6t
. t = .25s. Положення зіткнення становить x col = 6,5. Отже, зіткнення повинно бути таким, що відбувається між x = 6 і x = 7, як таким####@@@@
.
Явна формула позицій слів після зіткнення є
- x 1 = підлога (x col ) - || w 1 || +1
- x 2 = підлога (x col ) +1
xx a
(один пробіл між словами xx
та a
). У ньютонівській фізиці сила, яка a
відчувається, була б зумовлена ближчим x
витягуванням з відстані двох ем, а інша x
тягне з відстані трьох ем, так? Це не те саме, що сила однієї точки-маси, яка X
тягнеться з відстані 2.5
ем (тобто центру маси осередку xx
), через закон зворотного квадрата ...