Pi razy e (lub Pie, jeśli lubisz niejednoznaczny zapis) do 100 miejsc po przecinku, wynosi:
8.5397342226735670654635508695465744950348885357651149618796011301792286111573308075725638697104739439...
( OIES A019609 ) ( argument za możliwą nieracjonalnością )
Twoim zadaniem jest napisanie programu, który przyjmuje dodatnią liczbę całkowitą N i wyprowadza Pi * e obcięte do N miejsc dziesiętnych. np. jeśli N = 2, to wynik powinien wynosić 8.53
.
Jest to problem związany z optymalizacją, więc wygrana zostanie przesłana, która może dać poprawny wynik dla najwyższej wartości N.
Aby upewnić się, że wszystkie zgłoszenia są oceniane przy użyciu tej samej mocy obliczeniowej, kod musi być uruchamiany na ideone , w dowolnym obsługiwanym języku. Zgodnie z ideone faq , dla niezalogowanych użytkowników istnieje 5 sekundowy limit czasu działania. Tego 5-sekundowego limitu należy użyć, a nie 15-sekundowego limitu dla zalogowanych użytkowników. (Zobacz często zadawane pytania na temat innych ograniczeń, takich jak pamięć, rozmiar kodu itp.)
W szczególności każdy, kto nie jest zalogowany do ideone, powinien mieć możliwość uruchomienia programu na ideone dla wszystkich wartości N od 1 do pewnego maksymalnego momentu obrotowego Nmax i widzieć prawidłowe wyjście prawie przez cały czas . bez Time limit exceeded
lub Memory limit exceeded
itp błędy. Zgłoszenie z największym Nmax wygrywa.
(To, czy faktyczny czas zajmuje smidge w ciągu 5 sekund, nie ma znaczenia, dopóki ideone nie powoduje błędów. „ Prawie cały czas ” jest definiowany jako ponad 95% czasu dla dowolnego konkretnego N.)
Detale
- Możesz użyć dowolnej metody matematycznej, którą chcesz obliczyć Pi * e, ale nie możesz zakodować wyjścia poza pierwszymi tuzinami cyfr Pi, e lub Pi * e .
- Twój program powinien być w stanie pracować dla dowolnego N, biorąc pod uwagę nieograniczone zasoby.
- Możesz użyć wbudowanych stałych Pi lub e, jeśli Twój język je posiada.
- Nie możesz uzyskiwać dostępu do stron internetowych ani zasobów zewnętrznych w stosunku do twojego kodu (jeśli ideone na to zezwala).
- Oprócz stałego kodowania i dostępu do zasobów zewnętrznych wszystko, co pozwala ideone, jest prawie na pewno w porządku.
- Twoje dane wejściowe i wyjściowe muszą (oczywiście) współpracować z tym, co ideone zapewnia we / wy (wydaje się, że tylko stdin / stdout). W porządku, jeśli potrzebujesz cudzysłowów wokół wejścia N lub jeśli dane wyjściowe są podobne
ans = ...
, itp. - Podaj link do fragmentu ideonu kodu wraz z danymi wejściowymi Nmax.
- Jeśli zdarzy się remis (możliwe tylko, jeśli wiele zgłoszeń osiągnie limit znaków wyjściowych 64kB), odpowiedź najwyższych głosów wygrywa.