Biorąc pod uwagę 2 nieujemne liczby całkowite jako dane wejściowe, wyprowadzaj nieujemną liczbę całkowitą, której nie można utworzyć za pomocą żadnego operatora matematycznego na 2 wejściach.
Na przykład, wprowadzone dane 2
i 3
, 6, 0, 5, 1, 9, 8, 23, 2
są nieprawidłowe wyjścia.
Operacje, które należy wziąć pod uwagę to:
Addition (a + b)
Subtraction (a - b) and (b - a)
Multiplication (a * b)
Division (a / b) and (b / a)
Modulus (a % b) and (b % a)
Exponentiation (a ** b) and (b ** a)
Bitwise OR (a | b)
Bitwise XOR (a ^ b)
Bitwise AND (a & b)
Concatenation (a.toString() + b.toString()) and (b.toString() + a.toString())
W przypadkach, w których operacja prowadziłaby do liczby całkowitej (takiej jak 2/3), zawsze wartość floor. Więc2 / 3 = 0
Załóżmy, że wszelkie nieprawidłowe operacje (takie jak podzielenie przez 0) dają 0.
Wejście
2 nieujemne liczby całkowite.
Standardowe metody We / Wy są akceptowane
Możesz założyć, że dane wejściowe będą zawsze w zakresie możliwym do obsługi dla danego języka, jednak pamiętaj, że nadal obowiązują standardowe luki .
Wynik
Dowolna nieujemna liczba całkowita, której nie można utworzyć za pomocą żadnej z powyższych operacji na 2 wejściach.
Przypadki testowe
Input -> Invalid outputs
2, 3 -> 0, 1, 2, 3, 5, 6, 8, 9, 23, 32
0, 0 -> 0
17, 46 -> 0, 2, 12, 17, 29, 63, 782, 1746, 4617, 18487710785295216663082172416, 398703807810572411498315063055075847178723756123452198369
6, 6 -> 0, 1, 6, 12, 36, 66, 46656
1, 1 -> 0, 1, 2, 11
Punktacja
To jest golf golfowy, więc wygrywa najmniej bajtów!
Odpowiedzi:
Siatkówka , 3 bajty
Wypróbuj online!
Pobiera dane wejściowe oddzielone spacją (lub dowolnym pojedynczym znakiem innym niż znak)
Zamienia wszystkie cyfry na
1
i łączy uzyskane liczby z innymi1
.Dowód poprawności
Dzięki uprzejmości Martina Endera
Ta operacja oblicza wynik o jedną cyfrę większą niż liczba cyfr dwóch liczb razem; jedyną operacją, która może dać tak duży wynik, jest potęgowanie.
Rezultatem jest ponowne połączenie (liczba, której wszystkie cyfry to 1).
„Wiadomo [sic] [...], że powrót w bazie 10 nie może [...] być doskonałą mocą.” Oznacza to, że tego wyniku nie można również uzyskać przez potęgowanie.
źródło
1
, po prostu przyjmuje dane wejściowe jako ciąg 2 liczb oddzielonych spacją i zastępuje każdą postać liczbą 1. Ale powiedziawszy to, nie mogę znaleźć żadnych przykładów, które mogłyby udowodnić, że się mylisz. .. jeszczeGalaretka , 3 bajty
Wypróbuj online!
Wyjaśnienie:
źródło
Python 2 , 8 bajtów
Wypróbuj online!
Pobiera na wejściu listę dwóch ciągów liczbowych, generuje pojedynczy ciąg liczbowy. Łączy liczby ze znakiem
1
pośrodku.Wynik ma zbyt wiele cyfr dla niczego poza wykładnikiem. Zauważ, że wyjście dla
(x,y)
ma jeszcze jedną cyfręx
iy
połączone, chyba żex
luby
wynosi 0. W przypadku wykładnika, sprawdzamy, czy oznacza to, żex**y
nigdy się nie zgadza.x
wynosi 0 lub 1, to tak też jestx**y
, co jest za małey<=1
tox**y<=x
jest za małey==2
, tox**2
musi mieć jeszcze dwie cyfry niżx
. Tak się dzieje dox=316
i nie możemy sprawdzić, czy żadna z nich nie działa.y==3
, tox**3
musi mieć jeszcze dwie cyfry niżx
. Tak się dzieje dox=21
. Możemy sprawdzić, czy żadna z nich nie działa.3<y<13
, tox**y
szybko robi się za długo. Jest prawdopodobne tylko, że ma odpowiednią liczbę cyfrx<=25
i możemy to sprawdzić.y>=14
, tox**y
jest za długi nawet na najmniejsze możliwex==2
.źródło
CJam (7 znaków)
Tworzy to liczbę
(a+b+2)!
większą od największej liczby pokrewnej w prawie wszystkich przypadkach.Jest dość oczywiste, że największa liczba związany musi być jednym z
a ** b
,b ** a
,concat(a, b)
,concat(b, a)
.Jeśli weźmiemy pod uwagę logarytmy, znajdziemy to
log(a ** b) = b log a
log(concat(a, b)) ~= (log a) + log (b)
log((a + b + 2)!) ~= (a + b + 2) log (a + b + 2) - (a + b + 2)
Zatem asymptotycznie jest większy i musimy się martwić tylko o kilka małych przypadków. W rzeczywistości jedynym przypadkiem, dla którego wartość wyjściowa nie jest większa niż wszystkie powiązane liczby, jest
0, 1
(lub1, 0
), dla którego daje,6
a największą liczbą pokrewną jest10
.źródło
JavaScript (ES6), 15 bajtów
Pobiera dane wejściowe w składni curry.
a² + b² + 1 nie powiedzie się w przypadku wielu wpisów, takich jak 3² + 5² + 1 = 35 lub 7² + 26² + 1 = 726 (konkatenacja). a² + b² + 2 powinny być bezpieczne. Zostało to gruntownie przetestowane pod kątem 0 ≤ a ≤ b ≤ 50000 .
Próbny
Pokaż fragment kodu
źródło
Python,
1159579 bajtówGłupie proste rozwiązanie. Zapraszam do mnie obezwładnienia
+12 bajtów z powodu głupoty
x/0
.-20 bajtów dzięki @RobinJames
-16 bajtów dzięki @tehtmi
źródło
Python, 27 bajtów
Zwraca liczbę większą niż wszystkie powiązane liczby.
Wypróbuj online!
-1 bajt dzięki Kevin Cruijssen.
-2 bajty dzięki Dead Possum.
źródło
:
jeśli się nie mylę.f=
- nienazwana lambda jest dopuszczalna+
), ale nie jestem do końca pewien.Python 2, 25 bajtów
Łączy i dodaje 3
Wypróbuj online
źródło
JS (ES6), 12 bajtów
Ten sam algorytm, co w tej pythonowej odpowiedzi . Pobiera dane wejściowe jako tablicę liczb całkowitych.
źródło
Braingolf , 4 bajty
Wypróbuj online! (Nagłówek i stopka są tłumaczami, kod jest rzeczywistym kodem braingolfa, argumenty są danymi wejściowymi)
Wyjścia
(a+b+9)**(a+b+9)
Z moich testów nie mogłem znaleźć żadnych par, na których to nie działa.
źródło
Python 2 , 19 bajtów
Wypróbuj online!
Jestem prawie pewien, że zmiana bitów działa we wszystkich przypadkach, ale nie jestem w 100% na tym. W każdym razie oszczędza kilka bajtów w stosunku do wersji potęgującej.
źródło
J , 5 bajtów
Tylko tłumaczenie Galaretki .
Wypróbuj online!
źródło
APL (Dyalog) , 4 bajty
Algorytm pobrany stąd .
Wypróbuj online!
!
silnia z2+¨
dwa plus+
SumaDziała również w J.
źródło
QBIC , 8 bajtów
Człowieku, tyle fajnych sposobów, aby po prostu wziąć te liczby i uzyskać niepowiązaną liczbę. Musiałem tylko spróbować kilku, aby zobaczyć, jak QBIC nadąży. Najkrótszy to port odpowiedzi xnor w Pythonie, łączący liczby z 1 w środku:
Wszyscy, port odpowiedzi Leo's Retina:
Znalezienie następnej większej liczby pierwszej:
źródło
sed , 6 bajtów
Wypróbuj online!
Dane wejściowe są przesyłane przez stdin w postaci „x y”, dane wyjściowe są na stdout.
Port tej odpowiedzi na python , który zawiera dowód poprawności. Ogromne podziękowania dla xnor za tak prostą metodę.
źródło
Java 8, 15 bajtów
Prześlij z niesamowitej odpowiedzi JavaScript (ES6) @Arnauld .
Wypróbuj tutaj.
Proste podejście (
177170 bajtów ):Wypróbuj tutaj.
źródło
05AB1E ,
24 bajtyWypróbuj online!
Taki sam jak odpowiedź Jelly, znajduje liczbę pierwszą po sumie. Jeden bajt krótszy :)
EDYCJA : Teraz podnosi ją do własnej mocy, aby wystarczyć na wyjątek.
źródło
a+b
pierwszą liczbę pierwszą, podczas gdy moja uważa najmniejszą liczbę pierwszą większą niża+b
.Brachylog , 3 bajty
Wypróbuj online!
Nic nowego tutaj.
Teraz, aby dowiedzieć się, jak znaleźć niepowiązany ciąg ...
źródło