Teori gravitasi Newton mengatakan bahwa gaya gravitasi antara dua titik massa adalah
F = (Gm 1 m 2 ) / r 2
Dimana
- G adalah konstanta gravitasi: 6.674 × 10 −11 N · (m / kg) 2
- m 1 adalah massa benda pertama
- m 2 adalah massa benda kedua
- r adalah jarak antara pusat massa mereka
Tantangan
Anda perlu mensimulasikan tarikan antara dua kata. Setiap huruf kecil memiliki massa yang diberikan oleh posisinya dalam alfabet. Huruf kapital memiliki massa dua kali lipat dari rekan kecil mereka! Anda akan diberi string berisi dua kata yang dipisahkan oleh beberapa spasi, serta bilangan bulat positif detik, s . Output apa string akan terlihat seperti setelah s detik.
Info
- Karena kata-kata itu abstrak, mereka memiliki satuan unit dan konstanta yang berbeda
- Massa: WMU (Word Mass Unit) - sama dengan massa huruf 'a'.
- Jarak: em , panjang satu karakter.
- Angkatan: N W (Word Newton) = WMU · em / s 2
- Konstanta Gravitasi: G = 1 N w · (em / WMU) 2
- Karakter pertama sesuai dengan posisi 0 pada sumbu x.
- Semua perhitungan harus dilakukan dengan setepat mungkin, hanya pada akhirnya Anda membulatkan ke mereka terdekat.
- Anda tidak perlu menggunakan kalkulus, Anda hanya perlu menghitung ulang F setiap detik, secara otomatis menerapkan akselerasi baru ke kecepatan, dan setelah sedetik menerapkan kecepatan ke posisi (lihat contoh).
- Setelah dua kata saling bertabrakan (seperti
catdog
), mereka tidak bergerak lebih jauh.
Pusat massa
The pusat massa dari sebuah kata dapat ditemukan dengan rumus:
Di mana M adalah total massa kata, m i adalah massa huruf, dan r i adalah posisi huruf.
Contoh:
(Catatan: Meskipun contoh ini tidak menunjukkannya, ingatlah bahwa huruf kapital memiliki massa dua kali lipat dari rekan-rekan huruf kecil mereka.)
Input:, cat dog
2
Pertama, apa posisi masing-masing kata? "kucing" mulai dari posisi 0 dan "anjing" mulai dari posisi 9, jadi
- x c = 0 dan x d = 9
Selanjutnya, mari kita cari pusat massa "kucing".
- Ini memiliki massa 24 WMU (3 + 1 + 20).
- R c = 1/24 (3 * 0 + 1 * 1 + 20 * 2) = 41/24 = 1.70833 em
- Jadi tidak mengherankan pusat massa sangat dekat dengan huruf 't'.
Sekarang mari kita dapatkan pusat massa "anjing"
- R d = 1/26 (4 * 9 + 15 * 10 + 7 * 11) = 263/26 = 10.11538 em
- Jadi pusat massa untuk anjing dekat dengan huruf 'o', sedikit ke arah 'g'.
Sekarang kita dapat menghitung gaya antara dua kata.
- F = 24 * 26 / (10.11538-1.70833) 2 = 8.82871 N w
Sekarang kita perlu menerapkan kekuatan ini pada kedua kata dan mendapatkan akselerasi mereka
- a c = 8.82871 / 24 = .36786 em / s 2
- a d = -8.82871 / 26 = -.33957 em / s 2
Mengikuti aturan di atas, kami menerapkan akselerasi ke kecepatan, jadi
- v c = .36786 em / s
- v d = -.33957 em / s
Lalu kami menerapkan kecepatan ke posisi, jadi setelah satu detik,
- 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
Sekarang kami ulangi prosedur sekali lagi dengan posisi baru:
- 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
Jadi kita berakhir dengan "cat" di x = 1.17429 dan "dog" di x = 7.91603.
- Kami membulatkannya ke bilangan bulat terdekat sehingga "kucing" pergi ke posisi 1 dan "anjing" pergi ke posisi 8, sehingga hasilnya adalah
cat dog
- Kami membulatkannya ke bilangan bulat terdekat sehingga "kucing" pergi ke posisi 1 dan "anjing" pergi ke posisi 8, sehingga hasilnya adalah
Menangani Tabrakan
Ingat bahwa akselerasi baru segera ditambahkan ke kecepatan setiap detik. Karena itu, jika dua kata bertabrakan pada waktu tertentu, gunakan aljabar untuk menemukan titik tumbukan. Ambil contoh ini:
- kata 1 panjangnya 4 huruf (|| w 1 || = 4)
- kata 2 panjangnya 4 huruf (|| w 2 || = 4)
- x 1 = 3, x 2 = 8
v 1 = 2, v 2 = -6
Pecahkan
3 + (4-1) + 2t = 8 - 6t
. t = .25s. Posisi tumbukan adalah x col = 6.5. Karenanya, tabrakan akan muncul antara x = 6 dan x = 7####@@@@
.
Rumus eksplisit untuk posisi kata-kata setelah tabrakan adalah
- x 1 = lantai (x col ) - || w 1 || +1
- x 2 = lantai (x col ) +1
sumber
xx a
(satu ruang antara kataxx
dana
). Dalam fisika Newton, gaya yanga
terasa akan disebabkan olehx
tarikan yang lebih dekat dari jarak dua em, dan yang lainx
menarik dari jarak tiga em, ya? Itu tidak sama dengan kekuatan satu titik-massa yangX
menarik dari jarak2.5
em (yaitu, pusat massaxx
), karena hukum kuadrat-terbalik ...Jawaban:
Python 3, 556 byte
Terima kasih kepada FryAmTheEggman dan Sherlock9 untuk beberapa byte
g(w,t)
mengambil string (w
) dan waktu (t
), dan mengembalikan hasilnya. Fungsi lainnya adalah pembantu.Coba online (cetak
*
bukan spasi sehingga lebih terlihat)sumber