Biorąc pod uwagę 3 dodatnie liczby całkowite a
, b
oraz n
(którego maksymalne wartości to maksymalna wartość całkowita reprezentowalna w języku polskim), wyjście jeśli wartość truthy a ≡ b (mod n)
i falsey inaczej. Dla tych, którzy nie są zaznajomieni ze stosunkami zgodności, a ≡ b (mod n)
jest prawdziwe iff a mod n = b mod n
(lub równoważnie (a - b) mod n = 0
).
Ograniczenia
- Wbudowane metody testowania zgodności są zabronione
- Wbudowane operacje modulo są zabronione (obejmuje to operacje takie jak
divmod
funkcja Pythona , które zwracają zarówno iloraz, jak i resztę, a także funkcje podzielności, funkcje systemu pozostałości i tym podobne)
Przypadki testowe
(1, 2, 3) -> False
(2, 4, 2) -> True
(3, 9, 10) -> False
(25, 45, 20) -> True
(4, 5, 1) -> True
(83, 73, 59) -> False
(70, 79, 29) -> False
(16, 44, 86) -> False
(28, 78, 5) -> True
(73, 31, 14) -> True
(9, 9, 88) -> True
(20, 7, 82) -> False
To jest gra w golfa , więc wygrywa najkrótszy kod (w bajtach), a najwcześniej zostanie wysłany jako remis.
code-golf
math
arithmetic
Mego
źródło
źródło
/
?Odpowiedzi:
Galaretka, 5 bajtów
Wykorzystywanie w dużym stopniu wszystkiego, co nie jest zabronione, jest dozwolone.
Wypróbuj online!
Jak to działa
źródło
Python 2, 27 bajtów
Sprawdza, czy
a-b
jest to wielokrotnośćn
, dzieląc przezn
, co automatycznien
powoduje podłogę, i sprawdzając, czy pomnożenie przez daje ten sam wynik.źródło
Julia, 24 bajty
Jest to funkcja, która akceptuje trzy liczby całkowite i zwraca wartość logiczną.
Po prostu sprawdzamy, czy liczba całkowita a - b podzielona przez n jest równa liczbie zmiennoprzecinkowej a - b podzielonej przez n . Będzie to prawdą, gdy nie pozostanie resztka z podziału, tj. A - b | n , co oznacza, że a - b (mod n ) = 0.
źródło
Pyth, 7 bajtów
Korzysta z cyklicznego indeksowania Pytha.
źródło
Haskell, 23 bajty
Przykład użycia:
(28#78)5
->True
.Ta sama metoda, co w odpowiedzi @ xnor .
źródło
Minkolang 0,15 ,
1411 bajtówWypróbuj tutaj! Dane wejściowe są oczekiwane jako
a b n
.Wyjaśnienie:
źródło
MATL , 9 bajtów
Format wejściowy to
Wypróbuj online!
źródło
Retina , 20
Dane wejściowe są podawane w jednostajnej, oddzielonej spacją, w kolejności
n a b
. Wyjście 1 dla prawdy i 0 dla falsey.Wypróbuj online.
Jeśli wolisz wprowadzanie dziesiętne, możesz to zrobić:
Wypróbuj online.
źródło
APL, 15 bajtów
Jest to funkcja, która przyjmuje dwójkowym N po lewej i i b w postaci tablicy w prawo.
Podejście tutaj jest w zasadzie takie samo jak w mojej odpowiedzi Julii . Sprawdzamy, czy a - b / n jest równe samej podłodze, co będzie prawdziwe, gdy a - b (mod n ) = 0.
źródło
d=⌊d←⎕÷⍨-/⎕
JavaScript (ES6), 27 bajtów
@ CᴏɴᴏʀO'Bʀɪᴇɴ opublikował wersję, która nie działa; oto „wspólny algorytm”, którego ludzie używają w postaci „działającej”:
Słowo „działa” jest przerażające, ponieważ skrót, którego używamy,
Math.floor()
niejawnie obcina liczbę, aby znajdowała się w zakresie 32-bitowym ze znakiem, więc nie jest w stanie obsłużyć pełnej 52-bitowej lub innej przestrzeni liczb całkowitych, którą JavaScript może obsługiwać opisać.źródło
(2, 150, 3) :: (Word8, Word8, Word8)
; kryterium, które określasz, jest jawnie „jeśli teoretycznie istnieje dane wejściowe, które unieważniają odpowiedź, odpowiedź należy uznać za nieważną.”)(a - b) == a
dla niektórych wartościa
. Odpowiedź, która musi być ważny mecz w tych kresów jest prawie niemożliwe, nawet jeśli wezmę karę bajtowy i wymienić(0|...)
zMath.floor(...).
CJam, 7 bajtów
Kolejność wprowadzania to
n a b
.Sprawdź to tutaj.
Wyjaśnienie
źródło
Python 3, 27 bajtów
pow(x,y,n)
oblicza(x**y)%n
, więc to jest po prostu(a-b)**1%n
.źródło
ES6, 28 bajtów
Działa, szukając przecinka dziesiętnego w (ab) / n, który, mam nadzieję, jest dozwolony.
źródło
Poważnie, 10 bajtów
Pobiera dane wejściowe jako
N\nA\nB\n
(wielkie litery używane do odróżnienia od znaków nowej linii).Wypróbuj online
Używa tej samej metody, co odpowiedź @ AlexA
Objaśnienie (wielkie litery używane jako nazwy zmiennych w celach wyjaśniających):
źródło
F #, 24 bajty
Wykonuje to samo sprawdzenie, co odpowiedź @ xnor .
źródło