La théorie de la gravitation de Newton dit que la force gravitationnelle entre deux masses ponctuelles est
F = (Gm 1 m 2 ) / r 2
Où
- G est la constante gravitationnelle: 6,674 × 10 −11 N · (m / kg) 2
- m 1 est la masse du premier objet
- m 2 est la masse du deuxième objet
- r est la distance entre leurs centres de masse
Défi
Vous devez simuler la traction entre deux mots. Chaque lettre minuscule a une masse donnée par sa position dans l'alphabet. Les majuscules ont deux fois la masse de leurs homologues minuscules! Vous recevrez une chaîne contenant deux mots séparés par plusieurs espaces, ainsi qu'un nombre entier positif de secondes, s . Affiche à quoi ressemblerait la chaîne après s secondes.
Info
- Parce que les mots sont abstraits, ils ont un ensemble différent d'unités et de constantes
- Masse: WMU (Word Mass Unit) - égale à la masse de la lettre «a».
- Distance: em , la longueur d'un caractère.
- Force: N W (Word Newton) = WMU · em / s 2
- Constante gravitationnelle: G = 1 N w · (em / WMU) 2
- Le premier caractère correspond à la position 0 sur l'axe des x.
- Tous les calculs doivent être effectués avec autant de précision que possible, seulement à la fin vous arrondissez au plus proche em.
- Vous n'avez pas besoin d'utiliser le calcul, vous avez juste besoin de recalculer le F chaque seconde, d'appliquer automatiquement la nouvelle accélération à la vitesse et, après une seconde, d'appliquer la vitesse à la position (voir l'exemple).
- Une fois que deux mots entrent en collision (comme
catdog
), ils ne bougent plus.
Le centre de masse
Le centre de masse d'un mot peut être trouvé avec la formule:
Où M est la masse totale du mot, m i est la masse d'une lettre et r i est la position de la lettre.
Exemple:
(Remarque: bien que cet exemple ne le montre pas, n'oubliez pas que les majuscules ont deux fois la masse de leurs homologues en minuscules.)
Entrée:, cat dog
2
Quelles sont d'abord les positions de chaque mot? "chat" commence à la position 0 et "chien" commence à la position 9, donc
- x c = 0 et x d = 9
Ensuite, trouvons le centre de masse de "chat".
- Il a une masse de 24 WMU (3 + 1 + 20).
- R c = 1/24 (3 * 0 + 1 * 1 + 20 * 2) = 41/24 = 1,70833 em
- Sans surprise, le centre de masse est donc très proche de la lettre «t».
Maintenant, obtenons le centre de masse du "chien"
- R d = 1/26 (4 * 9 + 15 * 10 + 7 * 11) = 263/26 = 10.11538 em
- Le centre de gravité du chien est donc proche de la lettre «o», légèrement vers «g».
Maintenant, nous pouvons calculer la force entre les deux mots.
- F = 24 * 26 / (10.11538-1.70833) 2 = 8.82871 N w
Maintenant, nous devons appliquer cette force aux deux mots et obtenir leurs accélérations
- a c = 8,82871 / 24 = 0,36786 em / s 2
- a d = -8,82871 / 26 = -,33957 em / s 2
En suivant les règles ci-dessus, nous appliquons l'accélération à la vitesse, donc
- v c = 0,36786 em / s
- v d = -,33957 em / s
Ensuite, nous appliquons la vitesse à la position, donc après une seconde,
- x c = 0,36786 em
- x d = 9 -33957 = 8,66043 em.
- R c = 1,70833 + 0,36786 = 2,07619 em
- R d = 10.11538-.33957 = 9.77581 em
Maintenant, nous répétons la procédure une fois de plus avec les nouvelles positions:
- F = 24 * 26 / ((9,77581) - (2,07619)) 2 = 10,52558 N w
- a c = 10,52558 / 24 = 0,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 = 0,36786 + 0,80643 = 1,17429 em, x d = 8,66043 - 0,74440 = 7,91603 em
- R c = 2,07619 + 0,80643 = 2,888262 em, R d = 9,77581 - 0,74440 = 9,03141 em
Nous nous retrouvons donc avec "chat" à x = 1,17429 et "chien" à x = 7,91603.
- Nous arrondissons ceux-ci à l'entier le plus proche pour que "cat" passe en position 1 et "dog" passe en position 8, donc la sortie est
cat dog
- Nous arrondissons ceux-ci à l'entier le plus proche pour que "cat" passe en position 1 et "dog" passe en position 8, donc la sortie est
Gestion des collisions
N'oubliez pas que la nouvelle accélération est immédiatement ajoutée à la vitesse à chaque seconde. Par conséquent, si deux mots entrent en collision à un certain moment, utilisez l'algèbre pour trouver le point de collision. Prenez cet exemple:
- le mot 1 a 4 lettres (|| w 1 || = 4)
- le mot 2 a 4 lettres (|| w 2 || = 4)
- x 1 = 3, x 2 = 8
v 1 = 2, v 2 = -6
Résolvez
3 + (4-1) + 2t = 8 - 6t
. t = 0,25 s. La position de la collision est x col = 6,5. Par conséquent, la collision devrait apparaître comme se produisant entre x = 6 et x = 7, en tant que telle####@@@@
.
La formule explicite pour les positions des mots après une collision est
- x 1 = étage (x col ) - || w 1 || +1
- x 2 = étage (x col ) +1
xx a
(un espace entre les mots xx
et a
). En physique newtonienne, la force qui a
se ressent serait due au x
tirage plus rapproché à une distance de deux em, et l'autre x
tirant à une distance de trois em, oui? Ce n'est pas la même chose que la force d'une masse ponctuelle unique X
tirant d'une distance de 2.5
em (c.-à-d., Le centre de masse de la xx
), en raison de la loi du carré inverse ...