Definicje:
- Trójkąt jest uważany za trójkąt prosty, jeśli jeden z kątów wewnętrznych ma dokładnie 90 stopni.
- Wiele jest uważany za racjonalne , jeżeli może być reprezentowany przez stosunek liczb całkowitych, to znaczy
p/q
, gdzie zarównop
iq
są liczbami całkowitymi. - Liczba
n
jest liczbą zgodną, jeśli istnieje prostokątny trójkąt obszaru, wn
którym wszystkie trzy boki są racjonalne. - To jest OEIS A003273 .
Wyzwanie
To wyzwanie stanowi problem decyzyjny . Biorąc pod uwagę liczbę wejściową x
, wypisz odrębną i spójną wartość, jeśli x
jest liczbą zgodną, i oddzielną odrębną, spójną wartość, jeśli x
nie jest liczbą zgodną . Wartości wyjściowe niekoniecznie muszą być zgodne z prawdą / falsey w twoim języku.
Zasada specjalna
Na potrzeby tego wyzwania możesz założyć hipotezę Birch i Swinnerton-Dyer jest prawdziwa. Alternatywnie, jeśli możesz udowodnić hipotezę Birch i Swinnerton-Dyer, idź po nagrodę Millennium w wysokości 1 000 000 $. ;-)
Przykłady
(Używanie True
dla przystających numerów i False
innych).
5 True
6 True
108 False
Zasady i wyjaśnienia
- Dane wejściowe i wyjściowe można podać dowolną dogodną metodą .
- Możesz wydrukować wynik do STDOUT lub zwrócić go jako wynik funkcji. Podaj w swoim zgłoszeniu, jakie wartości może przyjąć wynik.
- Dopuszczalny jest pełny program lub funkcja.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
code-golf
decision-problem
number-theory
AdmBorkBork
źródło
źródło
Odpowiedzi:
R
179173142141137 137135134 bajtówUżywając tych samych argumentów opartych na twierdzeniu Tunnella , zwraca
0
if, jeślin
nie jest przystające, i1
inaczej. (Długo zajęło mi dostrzeżenie ograniczenia, pod warunkiem, że dotyczy to tylko liczb całkowitych bez kwadratów .)Wypróbuj online
Ulepszenia wprowadzone przez Arnauda i Giuseppe (końcowy kod to w większości Guiseppe!), Z -3 dzięki Robin
Analiza składniowa:
z twierdzeniem Tunnella stwierdzającym, że n jest zgodny wtedy i tylko wtedy, gdy liczba rozwiązań całkowitych do 2x² + y² + 8z² = n jest dwa razy większa niż liczba rozwiązań całkowitych do 2x² + y² + 32z² = n, jeśli n jest nieparzyste, a liczba rozwiązań całkowitych do 8x² + y² + 16z² = n jest dwa razy większa niż liczba rozwiązań całkowitych do 8x² + y² + 64z² = n, jeśli n jest parzyste.
źródło
@[username]
... Zgaduję, że wciągnął cię w golfa kod przez Robin Ryder?-n:n
? Nie przeczytałem twierdzenia Tunnel, ale wydaje mi się,n:0
że działałoby to równie dobrze dla -1 bajtów ... Ponadto, pro wskazówka, jeśli klikniesz przycisk „link” na górze TIO, będziesz miły formaty do kopiowania i wklejania do PPCG :-) EDYCJA: Rozumiem, są przypadki, w którychn:0
nie działa.Rdza - 282 bajtów
Zobacz też:
poprawione parzyste / nieparzyste, dzięki @Level River St
źródło
C ++ (gcc) ,
251234 bajtówDzięki @arnauld za wskazanie głupiej literówki z mojej strony.
-17 bajtów dzięki @ceilingcat.
Wypróbuj online!
Zwraca 1, jeśli
n
przystaje, 0 w przeciwnym razie.źródło
JavaScript (ES7), 165 bajtów
Podobnie jak odpowiedź @ NeilA. , jest on oparty na twierdzeniu Tunnella i dlatego zakłada, że hipoteza Bircha i Swinnertona-Dyera jest prawdziwa.
Zwraca wartość logiczną.
Wypróbuj online!
W jaki sposób?
źródło
Ruby, 126 bytes
Try it online!
found a place to initialize
t=1
and expanded the list of squares into a triplet instead of usingq
to make additional copies.Ruby, 129 bytes
Try it online!
Uses Tunnell's theorem like the other answers. I use a single equation as follows.
Sprawdzamy przypadki
k=8
ik=32
sprawdzamy, czy istnieje dwa razy więcej rozwiązań dlak=8
niżk=32
. Odbywa się to poprzez dodaniek-16
zat
każdym razem, gdy znajdziemy rozwiązanie. Jest to +16 w przypadkuk=32
lub -8 w przypadkuk=8
. Ogólnie liczba jest zgodna, jeślit
jest taka sama jak jej wartość początkowa na końcu funkcji.It is necessary to find all solutions to the test equation. I see many answers testing between +/-
sqrt n
. It is perfectly OK to test also outside these limits if it makes code shorter, but no solutions will be found because the left side of the equation will exceedn
. The thing I missed in the beginning is that negative and positivex,y,z
are considered separately. Thus-3,0,3
yields three squares9,0,9
and all solutions must be counted separately (0 must be counted once and9
must be counted twice.)Ungolfed code
źródło