Neredeyse kütlesiz bir kedi, (x, y, z)
hızda bir noktada uzaya düşüyor (bir uzay giysisi ve her şeyle endişelenmeyin) (vx, vy, vz)
. Noktada sabit, sonsuz yoğun bir gezegen (0 hacmi ile) vardır (0, 0, 0)
ve nesneleri r
ivmeli olarak uzaktan çeker 1/r^2
. Newton yer çekimine göre, nesne zaman sonra nereye gidiyor t
?
Bu durumda neredeyse kütlesiz değeri çıktısını aldığınız anlamına gelir lim (mass --> 0) <position of cat>
. Kütle gezegenin yer çekiminden etkilenir, ancak gezegen kedinin yerçekiminden etkilenmez. Başka bir deyişle, merkezi beden sabittir.
Bu Code Golf'e biraz benziyor : Uzay gemisinin kaderi nedir? [kayan noktalı sürüm] , ancak doğruluk ölçtüğü için bu farklı.
3 saniyeden daha kısa sürede çalışması gereken bir simülasyona dayalı bir çözüm uygulayabilirsiniz, VEYA tam bir değer veren bir program da uygulayabilirsiniz (ayrıca 3 saniyeden daha kısa sürede çalıştırılmalıdır). Aşağıdaki puanlama ayrıntılarına bakın. Bir simülasyon uygularsanız, kesin olması gerekmez, ancak yanlışlık nedeniyle puanınız daha düşük olacaktır.
Girdi : x y z vx vy vz t
mutlaka x, y, z koordinatlarını, x, y ve z yönlerindeki hızı ve zamanı temsil eden tam sayılar olmak zorunda değildir. Kedinin hızının, o irtifadaki kaçış hızından kesinlikle daha düşük olduğu garanti edilir. Bir işleve parametreler dahil olmak üzere giriş her yerden alınabilir. Program dizüstü bilgisayarımda üç saniyeden daha kısa sürede çalışmalı t < 2^30
, yani bir simülasyon çalıştırıyorsanız, zaman testinizi buna göre ayarlamanız gerekir. Her test durumu için 3 saniyelik sınıra ulaşmayı planlıyorsanız, bilgisayarımda üç saniye içinde çalışmasını sağlamak için hız kazançları için daha doğru / daha az doğru hale getirebilecek ayarlanabilir bir parametre olduğundan emin olun.
Çıktı :, x y z
süre sonra konum t
.
İki cisim problemi mükemmel bir şekilde çözülebildiğinden teorik olarak mükemmel ve doğru bir cevap almak mümkündür.
Puanlama : Herhangi bir test durumunda, hata, çıktınız ile "doğru" çıktı arasındaki mesafe olarak tanımlanır. Gerçek çıktı, test senaryosu snippet'inin ürettiği çıktı olarak tanımlanır. Hata daha küçükse 10^(-8)
, hata sıfıra yuvarlanır. Puanınız 100 (veya daha fazla) rastgele test vakasındaki ortalama hatadır. Kusursuz bir cevap yazarsanız, 0 puan almalısınız; en düşük puan kazanır ve bağlar kod uzunluğuna göre kesilir.
Test senaryoları :
1 0 0 0 -1 0 1000000000 --> 0.83789 -0.54584 0
Bu durumda, yörünge periyot 2 * pi ile mükemmel daireseldir, bu nedenle 159154943 kez daire çizdikten sonra kedi yaklaşık olarak (0.83789, -0.54584) biter. Bu, kodunuzun test edileceği bir test durumu değildir; bununla birlikte, kusursuz bir cevap gönderirseniz, bu konuda test etmek isteyebilirsiniz.
Aşağıdaki pasaj rastgele ek test senaryoları oluşturur ve gönderimleri yargılamak için kullanılacaktır; bununla ilgili bir hata varsa bana bildirin:
t
birim zamanda, ne olursa olsun verilir ve hız aynı birimi kullanır. İster saniye ister saat olsun, cevap aynı olacaktır.
nearly massless cat
Peki, kedinin tam kütlesi ne olurdu? 0
Bu kedinin kütlesi için bir değer olarak mı kullanmalıyız ?
t
saniye cinsinden mi verilir? Eğer öyleyse, hız saniyede birim olarak mı yoksa daha küçük bir şey olarak mı verilir?