Wprowadzenie
Teoria liczb jest pełna cudów w postaci nieoczekiwanych połączeń. Oto jeden z nich.
Dwie liczby całkowite są współ-prime , jeśli nie mają one wspólne czynniki inne niż 1. Biorąc pod uwagę liczbę N , należy rozważyć wszystkie liczby całkowite od 1 do N . Losuj dwie takie liczby całkowite losowo (wszystkie liczby całkowite mają takie samo prawdopodobieństwo, że zostaną wybrane przy każdym losowaniu; losowania są niezależne i zastępują). Niech p oznacza prawdopodobieństwo, że dwie wybrane liczby całkowite są pierwszymi. Następnie p dąży do 6 / π 2 ≈ 0,6079 ... tak jak N dąży do nieskończoności.
Wyzwanie
Celem tego wyzwania jest obliczenie s w zależności od N .
Jako przykład rozważmy N = 4. Istnieje 16 możliwych par uzyskanych z liczb całkowitych 1,2,3,4. 11 z tych par jest równoległych, a mianowicie (1,1), (1,2), (1,3), (1,4), (2,1), (3,1), (4,1 ), (2,3), (3,2), (3,4), (4,3). Zatem p wynosi 11/16 = 0,6875 dla N = 4.
Dokładną wartość p musi być obliczana z co najmniej czterech miejsc po przecinku. Oznacza to, że obliczenia muszą być deterministyczne (w przeciwieństwie do Monte Carlo). Ale nie musi to być bezpośrednie wyliczenie wszystkich par jak wyżej; można zastosować dowolną metodę.
Można użyć argumentów funkcyjnych lub stdin / stdout. Jeśli wyświetlasz wynik, zera końcowe można pominąć. Na przykład 0.6300
może być wyświetlany jako 0.63
. Powinien być wyświetlany jako liczba dziesiętna, a nie jako ułamek (wyświetlanie łańcucha 63/100
jest niedozwolone).
Kryterium wygranej to najmniej bajtów. Nie ma żadnych ograniczeń dotyczących korzystania z wbudowanych funkcji.
Przypadki testowe
Wejście / wyjście (tylko cztery miejsca po przecinku są obowiązkowe, jak wskazano powyżej):
1 / 1.000000000000000
2 / 0.750000000000000
4 / 0.687500000000000
10 / 0.630000000000000
100 / 0.608700000000000
1000 / 0.608383000000000