tło
Numer Ramanujana, 1729, jest nazywany numerem taksówki z powodu (prawdopodobnie apokryficznej) opowieści o tym, jak Hardy wsiada do taksówki i odwiedza Ramanujana w szpitalu o tym numerze, co wydawało mu się mdłe.
Od tego czasu znany jest jako najbardziej znany z klasy liczb całkowitych zwanych „liczbami taksówek”, które można wyrazić jako sumę dwóch n-tych potęg (dodatnich liczb całkowitych) na dwa (lub czasami „k”) różne sposoby.
1729 jest najmniejszą liczbą naturalną wyrażaną jako suma 2 kostek na 2 różne sposoby, co czyni ją pierwszą liczbą taksówek „3,2” („n, k” jest ogólna).
Wyzwanie
Biorąc pod uwagę liczbę, zdecyduj, czy jest to wtórna liczba taksówek „3,2” - co oznacza, że spełnia to samo ograniczenie co 1729 (2 unikalne sumy kostek), ale nie musi być najmniejszą taką liczbą całkowitą z „3 , Klasa 2 "(oczywiście 1729).
Przykładowe przypadki:
1729 = 10 ^ 3 + 9 ^ 3 = 12 ^ 3 + 1 ^ 3
4104 = 15 ^ 3 + 9 ^ 3 = 16 ^ 3 + 2 ^ 3
13832 = 2 ^ 3 + 24 ^ 3 = 18 ^ 3 + 20 ^ 3
Jak również 20683, 32832, 39312 ...
Punktacja
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w każdym języku.
Szorstki kod Matlab, aby znaleźć inne przypadki brutalną siłą:
for k = 1729:20000
C = sum(round(mod(real((k-[1:ceil(k^(1/3))].^3).^(1/3)),1)*10000)/10000==1);
if C > 1
D = (mod(C,2)==0)*C/2 + (mod(C,2)==1)*((C+1)/2);
disp([num2str(k),' has ',num2str(D),' solns'])
end
end
źródło
Odpowiedzi:
05AB1E , 9 bajtów
Kod (bardzo wolny)
Kod (znacznie szybciej), 12 bajtów
Wykorzystuje kodowanie 05AB1E . Wypróbuj online!
Wyjaśnienie
źródło
Galaretka , 9 bajtów
Kredyty dla Erika the Outgolfer.
Wypróbuj online!
Jest to zbyt wolne, aby nawet nie działało w
1729
trybie online.Znacznie szybciej, 12 bajtów
Kredyty dla Dennisa.
Wypróbuj online!
źródło
Ðf⁸
może zostaćfR
. Drugi⁸
można usunąć.Œċ*3S€ċ>1
.Mathematica, 35 bajtów
Czysta funkcja przyjmująca dodatnią liczbę całkowitą i zwracająca
True
lubFalse
.#^3+#2^3&~Array~{#,#}
zestawia wszystkie sumy kostek dwóch liczb całkowitych od 1 do wejścia. (Byłoby to znacznie szybsze, gdyby rozsądne ograniczenie na liczbach całkowitych, które mają być pokrojone w kostki, podobnie jak pierwiastek sześcienny wejścia, ale zajęłoby to cenne bajty. W tej chwili kod zajmuje około 30 sekund na wejściu13832
i skaluje się co najmniej kwadratowo w danych wejściowych.)Count[...,#,2]
zlicza, ile razy dane wejściowe pojawiają się na tej liście na poziomie gniazda 2; jeżeli liczba ta jest większa niż2
, wówczas wejściem jest liczba pół-taksówek (większa niż 2, a nie większa niż 1, ponieważ ^ 3 + b ^ 3 i b ^ 3 + a ^ 3 są liczone osobno).źródło
Mathematica,
3837 bajtów-1 bajt dzięki @GregMartin
Jak zawsze we wszystkim jest wbudowana Mathematica.
źródło
Tr[1^...]
działa zamiastLength@
.JavaScript (ES7), 63 bajty
Stosunkowo szybka funkcja rekurencyjna, która ostatecznie zwraca wartość logiczną.
Próbny
Pokaż fragment kodu
źródło
Mathematica, 48 bajtów
Wejście
wynik
źródło
#!=1729&&
że po wyjaśnieniu specyfikacji nie jest już konieczne.Solve
zamiastReduce
?Length@Solve[x^3+y^3-#==0<x<y,{x,y},Integers]>1&
która zastępuje&&
się-
i trochę przegrupowanie.Python, 71 bajtów
Wypróbuj online
źródło
MATL (
1615 bajtów) ( idealnie1312)Wypróbuj online!
Wyjaśnienie:
Oparty na galaretowym rozwiązaniu „Leaky Nun”, właśnie przekonwertowany na MATL, prawdopodobnie w niektórych częściach zbędny i można go ulepszyć:
Uwaga: Falsy zawiera 0 i -1, a prawda to 1. Dzięki Luisowi Mendo za zaoszczędzenie tutaj dodatkowego bajtu i zastąpienie „s1>” „sq”.
Idealnie (
1312 bajtów):... wystarczy, ale przy większych liczbach ulega awarii na stronie tio.run.
źródło
1>
przezq
.H
Zamiast tego maszG
wyjaśnienie. Fakt, że program ulega awarii dla dużych liczb, jest zwykle nieistotny dla oceny. Jeśli działa, biorąc pod uwagę wystarczającą ilość czasu i pamięci, jest to dopuszczalne, chyba że wyzwanie stanowi inaczejRuby , 52 bajty
Wypróbuj online!
Ponieważ ta wersja tworzy ogromną tablicę wielkości n 2 , nie powiedzie się na wszystkich prawdziwych testach wyższych niż
1729
, tutaj jest zmodyfikowana wersja, która ma mniejszą wielkość tablicy około n 2/3 , która z powodzeniem sprawdza co najmniej do 31392.Wypróbuj online! (zmodyfikowany)
źródło
PHP , 76 bajtów
Wypróbuj online!
Wyszukaj do 400000 Wypróbuj online!
źródło