Zaimplementuj różnicę funkcji, która przyjmuje jako dane wejściowe trzy liczby całkowite x, y i z. Powinien zwrócić, czy odjęcie jednej z tych liczb od drugiej daje trzecią.
Test cases:
diff(5, 3, 2) yields True because 5 - 3 = 2
diff(2, 3, 5) yields True because 5 - 3 = 2
diff(2, 5, 3) yields True because 5 - 3 = 2
diff(-2, 3, 5) yields True because 3 - 5 is -2
diff(-5, -3, -2) # -5 - -2 is -3
diff(2, 3, -5) yields False
diff(10, 6, 4) yields True because 10 - 6 = 4
diff(10, 6, 3) yields False
Nie musisz nazywać funkcji, możesz zaimplementować domyślne metody wprowadzania danych, powyższe przykłady nie są ścisłą wytyczną.
Odpowiedzi:
Galaretka ,
53 bajtówDzięki @ Sp3000 za zapisanie dwóch bajtów!
Kod korzysta z tego samego algorytmu, co świetna odpowiedź @ xnor :
Wyjaśnienie:
To daje
[]
fałsz, a wszystko inne jako prawdę.Wypróbuj online!
źródło
Python 3, 21 bajtów
Jeśli dwie liczby dodają się do drugiej, suma wszystkich trzech będzie podwojona w stosunku do tej drugiej liczby, więc połowa sumy będzie elementem listy. Python 3 jest potrzebny, aby uniknąć podziału podłogi, chyba że liczby są podane
3.0
raczej niż zamiast3
.źródło
ES6, 31 bajtów
Dodaj 5 bajtów, jeśli chcesz nazwać funkcję
diff
.Edycja: Zapisano 2 bajty dzięki @Alex L.
źródło
||
z|
(chyba)|
zwraca wartość logiczną wtedy i tylko wtedy, gdy obie wartości są wartościami logicznymi. Taktrue | false == true
, ale3 | 5 == 7
. To samo dotyczy&&
i&
. Jedyna różnica pomiędzy|
i||
jeśli chodzi o booleany:|
weźmie pierwszą wartość i drugą wartość i znajdzie OR tych dwóch.||
przyjmie pierwszą wartość; jeśli to prawda, zwróćtrue
, w przeciwnym razie zwróć drugą wartość.true | false
ocenia się na 1 w JavaScript (co jest zgodne z prawdą, ale nie logiczne).APL,
85 bajtówJest to monadyczny ciąg funkcji, który przyjmuje tablicę i zwraca wartość logiczną (0/1 w APL). Korzysta z tego samego algorytmu jak XNOR za Python 3 odpowiedzi .
Wyjaśnienie:
Wypróbuj online
Zaoszczędzono 3 bajty dzięki Dennisowi!
źródło
JavaScript ES6,
383433 bajtówBardzo prosta anonimowa funkcja i zapożycza z odpowiedzi w języku Python. Pobiera dane wejściowe
x
jako tablicę; zwracatrue
lubfalse
. Bajty ogolił się do Molarmanfula i jrichaProgram 38-bajtowy, w którym każda liczba jest argumentem:
źródło
x=>x.some(a=>a==eval(x.join`+`)/2)
, co pozwala zaoszczędzić 4 bajty.x=>x.some(a=>2*a==x[0]+x[1]+x[2])
wydaje się działać.Oracle SQL 11.2, 49 bajtów
Przepisz rozwiązanie @xnor, wyrazy uznania dla niego.
źródło
J, 6 bajtów
Spróbuj z J.js .
Jak to działa
źródło
DUP , 31 znaków / 39 bajtów
Try it here!
Moje pierwsze zgłoszenie DUP w historii! Unicode to Twoja ostryga.
To anonimowa funkcja / lambda. Stosowanie:
Wyjaśnienie
źródło
ø
ma punkt kodowy 248, więc jest to jeden bajt, jeśli jest zakodowany jako ISO 8859-1.Java 7, 81
źródło
Perl 6,
2019 bajtówMam dwie funkcje równe liczbie bajtów, więc wstawię obie. Doceń to, co łaskocze twoje upodobania.
Zastosowanie: przypisz dowolną zmienną, z której możesz ją wywołać.
EDYCJA: Dzięki @ b2gills za zmniejszenie bajtów
źródło
{@_∋@_.sum div 2}
i{@_∋+~(@_.sum/2)}
oba są krótsze∋
zrobić?Java 8 (funkcja lambda), 29 bajtów
Rozwiązania do golfa w kodzie Java są zazwyczaj krótkie, gdy program nie musi być w pełni funkcjonalnym programem. (* kaszel kaszel * deklaracja klasy, główna metoda)
źródło
Pyth, 6 bajtów
Wypróbuj online!
Oczekuje danych wejściowych jako listy liczb całkowitych. Wyprowadza 0, jeśli nie można zbudować żadnej liczby, odejmując pozostałe dwa, i> 0, jeśli przynajmniej jedna może.
Wyjaśnienie:
Ten sam algorytm jak odpowiedź @xnor
źródło
05AB1E , niekonkurujący
4 bajty , niekonkurujące z powodu głupoty. Kod:
Używanie 0 jako fałszu i> 0 jako prawdy. Wykorzystuje kodowanie CP-1252.
źródło
;
połowę stosu. Ale zgadnij co, nigdy go nie wdrożyłem.Kona 16 znaków
Pobiera wektor ze stosu, sumuje je, dzieli przez 2 i określa, czy jest w wektorze. Zwraca 1 jako prawdę i 0 jako falsey.
Dzwoni za pośrednictwem
źródło
jq, 17 znaków
(Kolejny przepisać XNOR „s Python 3 odpowiedź . Upvotes powinien udać się do tego.)
Dane wejściowe: tablica 3 liczb całkowitych.
Przykładowy przebieg:
Test on-line:
jq, 18 znaków
(17-znakowy kod + 1-znakowa opcja wiersza poleceń.)
Dane wejściowe: lista 3 liczb całkowitych.
Przykładowy przebieg:
źródło
MATL , 5 bajtów
Korzystając z doskonałego podejścia @ xnor :
Wypróbuj online!
Podejście brutalnej siły, 12 bajtów :
Wypróbuj online!
źródło
𝔼𝕊𝕄𝕚𝕟, 7 znaków / 9 bajtów
Try it here (Firefox only).
Meh Nadal znajduję lepsze sposoby. To po prostu niesamowity algorytm @ xnor.
źródło
CJam, 10
12bajtów2 bajty usunięte dzięki @ MartinBüttner.
Wyświetla liczbę jako prawdziwy wynik, a brak wyniku jako wynik fałszowania.
Wypróbuj tutaj
źródło
Poważnie, 6 bajtów
Zwraca 0, jeśli fałsz, w przeciwnym razie dodatnią liczbę całkowitą.
źródło
Mathematica,
2019 bajtówDziała podobnie do większości innych odpowiedzi.
źródło
MemberQ[2{##},+##]&
? (i zapomniałeś liczby bajtów)Haskell, 20 bajtów
Korzystanie z rozwiązania xnor.
źródło
(/)
nie działa na liczbach całkowitych, a wyzwanie wymaga liczb całkowitych, nie jestem pewien, czy to jest prawidłowe rozwiązanie.(\l->sum l/2`elem`l).map fromInteger
i może być stosowany tak:((\l->sum l/2`elem`l).map fromInteger) ([2,3,5] :: [Integer])
. Myślę, że to, co mnie wytrąciło, to xnor wspominający użycie Pythona 3, więc wejście nie musiało być 3.0 zamiast 3. Myślałem, że typ wejścia nie został określony, tylko sposób, w jaki zostały napisane ...sum
nieelem
działałyby, prawdopodobnie powinienem określić, że była to lista, ale skoro ta odpowiedź jest dosłownie przesłana przez xnor (w Haskell), nie uważam, że jest to konieczne. :)Perl, 24 + 4 = 28 bajtów
Wymaga
-paX
flag do uruchomienia, drukuje1
jako Prawda i nic tak jak False:-X
wyłącza wszystkie ostrzeżenia.źródło
$_=eval(y/ /+/r)/2~~@F
(używa tych samych opcji wiersza poleceń).tr
:)-X
określając wersję Perla [5.10 .. 5.18). (Inteligentne dopasowanie zostało wprowadzone w 5.10, a eksperymentalne ostrzeżenia zostały wprowadzone w 5.18. Każda wersja między tymi dwoma będzie dobrze działać~~
bez-X
).Jolf, 6 bajtów
Wypróbuj tutaj!
To niesamowite rozwiązanie xnora dla tego problemu, ale w Jolfie.
źródło
Słupy , 8
Jeszcze jedna implementacja algorytmu xnor.
Jak to działa:
źródło
SpecBAS - 36 bajtów
Używa formuły xnors
wyprowadza 1 jeśli prawda i 0 jeśli fałsz
źródło
05AB1E ,
65 bajtów-1 bajt poprzez utworzenie portu algorytmu @xnor w języku Python 3 .
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
Jestem prawie pewien, że
м_O
można go skrócić, ale nie jestem pewien, których poleceń muszę użyć do tego.źródło
R , 23 bajty
Wypróbuj online!
Bezwstydny port odpowiedzi Xnora .
źródło