Prawie bezmasowy kot upuszczany jest w przestrzeń (nie martw się, z skafandrem i wszystkim) w punkcie (x, y, z)z prędkością (vx, vy, vz). W tym punkcie znajduje się stała, nieskończenie gęsta planeta (o objętości 0) (0, 0, 0)i przyciąga obiekty z odległości rz przyspieszeniem 1/r^2. Zgodnie z grawitacją Newtona, dokąd obiekt zmierza po czasie t?
Prawie bezmasowa w tym przypadku oznacza, że wyprowadzasz wartość lim (mass --> 0) <position of cat>. Na masę ma wpływ grawitacja planety, ale grawitacja kota nie ma wpływu na planetę. Innymi słowy, ciało centralne jest nieruchome.
Jest to nieco podobne do Code Golf: Jaki jest los statku kosmicznego? [wersja zmiennoprzecinkowa] , ale jest inaczej, ponieważ mierzy dokładność.
Możesz wdrożyć rozwiązanie oparte na symulacji, które musi działać w mniej niż 3 sekundy, LUB możesz wdrożyć program, który podaje dokładną wartość (musi również działać w mniej niż 3 sekundy). Zobacz szczegóły punktacji poniżej. Jeśli wdrożysz symulację, nie musi ona być dokładna, ale twój wynik będzie niższy z powodu niedokładności.
Dane wejściowe : x y z vx vy vz tniekoniecznie liczby całkowite reprezentujące współrzędne x, y, z, prędkość odpowiednio w kierunkach x, y i z. Gwarantuje się, że prędkość kota jest ściśle mniejsza niż prędkość ucieczki na tej wysokości. Dane wejściowe można pobierać z dowolnego miejsca, w tym parametrów do funkcji. Program musi działać na moim laptopie w mniej niż trzy sekundy t < 2^30, co oznacza, że jeśli prowadzisz symulację, musisz odpowiednio dostosować swój czas. Jeśli planujesz osiągnąć 3-sekundowy limit dla każdego przypadku testowego, upewnij się, że istnieje parametr dostrajający, który może uczynić go bardziej dokładnym / mniej dokładnym dla przyrostów prędkości, dzięki czemu mogę uruchomić go w ciągu trzech sekund na moim komputerze.
Wyjście : x y zpozycja po czasie t.
Ponieważ problem dwóch ciał można idealnie rozwiązać, teoretycznie możliwe jest uzyskanie idealnej, poprawnej odpowiedzi.
Punktacja : dla każdego przypadku testowego błąd jest definiowany jako odległość między twoimi danymi wyjściowymi a „prawdziwymi” danymi wyjściowymi. Prawdziwe dane wyjściowe są zdefiniowane jako generowane przez fragment kodu przypadku testowego. Jeśli błąd jest mniejszy niż 10^(-8), błąd jest zaokrąglany w dół do zera. Twój wynik to średni błąd w 100 (lub więcej) losowych przypadkach testowych. Jeśli napiszesz idealnie dokładną odpowiedź, powinieneś otrzymać wynik 0; wygrywa najniższy wynik, a remisy zostaną zerwane przez długość kodu.
Przypadki testowe :
1 0 0 0 -1 0 1000000000 --> 0.83789 -0.54584 0
W tym przypadku orbita jest idealnie okrągła z okresem 2 * pi, więc po okrążeniu 159154943 razy kot kończy w przybliżeniu (0,83789, -0,54584). To nie jest przypadek testowy, na którym zostanie przetestowany kod; jeśli prześlesz idealnie dokładną odpowiedź, możesz chcieć ją przetestować.
Poniższy fragment kodu generuje losowe dodatkowe przypadki testowe i będzie używany do oceny zgłoszeń; daj mi znać, jeśli występuje w tym błąd:
tjest podawany w jednostkach czasu, cokolwiek to jest, a prędkość użyje tej samej jednostki. Czy to w sekundach, czy godzinach, odpowiedź będzie taka sama.
nearly massless catJaka byłaby dokładna masa kota? Czy powinniśmy użyć 0jako wartości masy tego kota?
tpodawany w sekundach? Jeśli tak, to czy prędkość byłaby podawana w jednostkach na sekundę, czy może coś mniejszego?