Funkcje zapisu x(a)
, y(a)
i z(a)
takie, że dla każdego racjonalnego a
wszystkie funkcje zwracają liczby wymierne i x(a)*y(a)*z(a)*(x(a) + y(a) + z(a)) == a
. Możesz założyć ≥ 0.
Nie musisz używać racjonalnych typów ani operacji w swoim programie, o ile twój program ma solidne podstawy matematyczne. Np. Jeśli użyjesz pierwiastka kwadratowego w swojej odpowiedzi, musisz pokazać, że jego argumentem jest zawsze kwadrat liczby wymiernej.
Możesz napisać trzy nazwane funkcje x, y, z lub zamiast tego napisać trzy programy, jeśli funkcje są uciążliwe lub nie istnieją w twoim języku. Alternatywnie możesz napisać pojedynczy program / funkcję, która zwraca trzy liczby x, y, z. Wreszcie, jeśli wolisz, możesz wprowadzić / wyprowadzić liczby wymierne jako parę licznika / mianownika. Twój wynik to całkowity rozmiar trzech funkcji lub trzech programów w bajtach. Najmniejszy wynik wygrywa.
Brutalne zmuszanie jest niedozwolone. Dla dowolnego a = p / q, gdzie p, q ≤ 1000, twój program powinien uruchomić się w ciągu 10 sekund.
Przykład (nie oznacza to, że twój rozkład musi podawać te liczby):
x = 9408/43615
y = 12675/37576
z = 1342/390
x*y*z*(x+y+z) = 1
a
?Odpowiedzi:
CJam (59 bajtów)
Jest to anonimowy blok (funkcja), który przyjmuje liczbę całkowitą lub podwójną na stos i tworzy tablicę z trzema podwójnymi liczbami. Ma wewnętrznie dwa przypadki do obsługi wszystkich nieujemnych danych wejściowych, ponieważ tylko jeden przypadek spowodowałby uszkodzenie jednego
0.25
lub drugiego4
. To wciąż łamie dla wejść-12
i-1.3333333333333333
, ale spec pozwala, że ...Demo on-line wykonuje go, a następnie sumuje wartości, drukuje wszystkie cztery, i mnoży im pokazać, że pobiera wartość pierwotną (modulo zaokrąglenia o błędzie).
Tło matematyczne
Elkies daje cztery rodziny zestawów rozwiązań. Euler:
Jeden związany z Eulerem:
Prostszy:
And one related to that one:
Observe that every family has at least two denominators of the formps4−qa for positive p and q : since all the terms involved are rational, that means that there's some positive a for which we get division by zero. Therefore we must use at least two sets of solutions which have their singularities at different values of a . Intuitively it's going to be golfiest to choose two sets from the same family. I've chosen the simplest family (the third one) with parameters s=1 and s=2 .
źródło
Axiom, 191 bytes
It is the traslation of the formula Peter Taylor report in this page with some code would make the denominators not be 0. one test
źródło