Czy wszystkie trzy liczby całkowite są różne?

14

Jako dane wejściowe otrzymasz 3 liczby całkowite. Wejścia mogą, ale nie muszą się różnić. Musisz wyprowadzić 1, jeśli wszystkie trzy wejścia różnią się od siebie, i 0, jeśli jakieś wejście zostanie powtórzone więcej niż jeden raz.

To jest , więc ustaw swój kod tak krótko, jak to możliwe!

subin saju
źródło
1
Witamy w PPCG. Ładne pierwsze wyzwanie. Jesteśmy dość surowi w kwestii obiektywnych kryteriów wygrywania na tej stronie. golf-golf wydaje się tutaj oczywistym wyborem, więc dodam to do twojego postu. Popraw mnie, jeśli się mylę.
Adám
1
Przydałyby się niektóre przypadki testowe.
Adám
19
Ten, kto odrzuca wszystkie odpowiedzi, powinien przynajmniej wyjaśnić, dlaczego ...
Arnauld,
1
@ Adám Myślę, że dokładniejszym tytułem byłoby Czy wszystkie trzy liczby całkowite są różne?
Arnauld,
5
Mój dupe głosowanie to młotek, ale Możliwy duplikat „ Ustal, czy wszystkie cyfry dziesiętne są unikalne Nieco inny, ale większość odpowiedzi wciąż można przenieść.
Kevin Cruijssen

Odpowiedzi:

10

Python 3 , 23 21 20 bajtów

lambda*a:len({*a})>2

Wypróbuj online!

TFeld
źródło
OP poprosił o 1 na 0, więc może potrzebujesz jeszcze jednego bajtu:lambda*a:len({*a})//3
tsh
@tsh w Pythonie 1 == True, myślę, że jest tam gdzieś meta post
Stephen
1
@tsh - odpowiedni meta „jeśli kwaknie jak liczba, to jest liczba” - w Python: False * Trueis 0; False + Truejest 1; itp ...
Jonathan Allan,
Z odpowiedniego meta: „nie dotyczy to wyzwań, w których wymagany jest dokładny ciąg znaków”, więc nie jestem pewien, co tak naprawdę ma zastosowanie.
GB
8

R , 13 bajtów

Inne rozwiązanie niż @Kirill, używając mad()do niezamierzonego celu!

mad(scan())>0

Wypróbuj online!

J.Doe
źródło
1
Cóż, dane wejściowe nie są w ogóle określone, więc IMO akceptując 3 wartości jako dane wejściowe oznacza, że ​​możemy zaakceptować wektor
digEmAll
2
R prawie konkuruje z językami golfa! : D
digEmAll
1
Wierzę, że Gauss wynalazł madwłaśnie w tym celu.
ngm
5

R , 24 22 20 bajtów

all(table(scan())<2)

Wypróbuj online!

Zwraca wartość logiczną, ale jak ludzie już dyskutowali na temat odpowiedzi w języku Python , powinno to być OK.

Dzięki digEmAll za zapisanie 2 bajtów.

Kirill L.
źródło
11 bajtów - jeśli możesz mieć dowolną liczbę> 0 jako prawdziwą. W przeciwnym razie dołącz >0do TRUE/FALSEwyjścia w 13 bajtach.
J.Doe
1
Wow, nawet nie wiedziałem o tej funkcji. Sugeruję, abyś opublikował go osobno (edytuj i przywróć usuniętą odpowiedź), ale myślę, że musisz trzymać się 13 bajtów - podczas gdy T / F rzeczywiście działa tak, jak 1/0, 1,48 nie.
Kirill L.,
5

JavaScript, 22 bajty

Jeśli możemy wyprowadzić wartości boolowskie, wówczas można usunąć 2 ostatnie bajty.

a=>new Set(a).size>2&1

Wypróbuj online

Dla tej samej liczby bajtów działa to na tablice o dowolnym rozmiarze, ale zakłada, że ​​dane wejściowe nigdy nie będą zawierać a, 0a dane wyjściowe są wartością logiczną.

a=>!a[new Set(a).size]

Wypróbuj online

Kudłaty
źródło
Zakładając, że możemy wziąć dane wejściowe jako tablicę i zwrócić wartość logiczną:a=>new Set(a).size>2
Arnauld
@Arnauld, tak, ja też to miałem, ale w obecnej postaci specyfikacja na to nie pozwoli - będzie aktualizowana, jeśli specyfikacja się zmieni.
Shaggy
Zaczekaj. Mogę po prostu przypiąć &122 bajty.
Shaggy
4

Rubin , 16 bajtów

->a{1-(a<=>a|a)}

Wypróbuj online!

GB
źródło
-3 bajty zuniq!
benj2240
Boolean i Integer są różnymi typami języka Ruby.
GB
Ach, masz rację. Nie przeczytałem wystarczająco dokładnie wyzwania i doszedłem do wniosku, że prawda i falsey będą wystarczające.
benj2240,
4

Cubix , 55 25 bajtów

-29 dzięki Jo King

O@O1u|@O@II-!/;I-!/;u^?-p

Wypróbuj online!

Powinno być możliwe zagranie w golfa z kilku bajtów.

Łukasz
źródło
26 bajtów
Jo King
Wielkie dzięki. Udało mi się ogolić jeszcze 1 bajt, aby uzyskać w sumie 25 bajtów
Łukasz
Myślę, że brakuje ci @miejsca zamiast .9. miejsca. Sprawia, że ​​robi trochę
fajnych
3

05AB1E , 2 bajty

ÙQ

Wypróbuj online lub sprawdź kilka innych przypadków .

Wyjaśnienie:

Ù     # Uniquify the (implicit) input
 Q    # Check if it's still equal to the (implicit) input
Kevin Cruijssen
źródło
Korzystanie ze standardowych reguł prawda / fałsz dla problemu decyzyjnego , pamiętając, że 1jest to jedyna prawdziwa wartość w 05AB1E, ¢Pdziała również jako alternatywny 2-bajtowy.
Pan Xcoder,
1
@ Mr.Xcoder Nie jestem pewien, czy to faktycznie jest aktualne - pytanie dotyczy wyjścia 1 i 0 - 4na przykład nie jest ani 1ani 0, ani nie działa jak 1lub 0(jak Truei działa Falsew Pythonie). Pytanie powinno prawdopodobnie dotyczyć Truthy / Falsey, ale obecnie tak nie jest.
Jonathan Allan,
3

Mathematica, 13 bajtów

Boole[E!=##]&

Czysta funkcja. Pobiera trzy liczby całkowite jako dane wejściowe i zwraca 0lub 1dane wyjściowe. Wiem, że jest to dość podobne do odpowiedzi Davida G. Stork , ale wykorzystuje się SlotSequencedo golenia bajtu (w porównaniu do Boole@*Unequal).

LegionMammal978
źródło
3

pieprzenie mózgu , 91 bajtów

,>,>,[-<-<->>]>>+++++++[>+++++++<-]+<<<<[>]>>[<<<[-<->]<[>]>>->[>.<<<->>-]<+]<+[>>>[>]<-.>]

Wypróbuj online!

Jak to działa

,>,>,                   'read input as A, B, and C
[-<-<->>]>>+            'compute A-C, B-C
++++++[>+++++++<-]+     'prepare output
<<<<[>]>>               'if A-C != 0 && B-C != 0
[
    <<<[-<->]           'compute A-B
    <[>]>>->            'if A-B != 0
    [>.<<<->>-]         'print 1
    <+
]
<+
[                       'else (this else is for both of the if statements, even though they are nested... wierd, I know)
    >>>[>]              
    <-.>                'print 0
]
Prismo
źródło
2

Japt -N, 3 bajty

eUâ

Spróbuj


Wyjaśnienie

deduplikuje dane wejściowe i esprawdza, czy są one równe oryginałowi.

Kudłaty
źródło
2

J , 4 bajty

-:~.

Wypróbuj online!

Wyjaśnienie:

Czy argument jest taki -:sam po usunięciu duplikatów~.

Galen Iwanow
źródło
2

K (oK) , 4 bajty

3=#?

Wypróbuj online!

Czy liczba poszczególnych elementów wynosi 3?

streetster
źródło
2

PowerShell, 27 25 bajtów

-2 bajty dzięki @AdmBorkBork

+!(($args|group).Count-3)

Skrypt testowy:

$f = {
+!(($args|group).Count-3)
}

&$f 1 2 3
&$f 3 2 1
&$f 2 1 3
&$f 2 2 3
&$f 2 1 1
&$f 2 1 2

Wyjaśnienie:

    $args|group           # Group arguments
   (           ).Count    # Count of groups 
  (                   -3) # is 0 if inputed integers are unique
 !                        # operator not converts int to boolean: true if integers are unique
+                         # converts boolean to int: 1 if integers are unique, otherwise 0
mazzy
źródło
1
26 bajtów -+(($args|group).count-eq3)
AdmBorkBork
świetny! i dzięki
mazzy
2

Common Lisp, 25 2 bajty

/=

Wypróbuj online!

-23 bajty dzięki @ceilingcat!

Renzo
źródło
Dzięki, @ceilingcat, zaktualizowałem odpowiedź!
Renzo
1

APL (Dyalog Unicode) , 3 bajty SBCS

Anonimowa ukryta funkcja prefiksu. Traktuje listę jako argument.

∪≡⊢

Wypróbuj online!

 wykonuje zestaw unikalnych elementów z argumentu

 mecz

 niezmodyfikowany argument?

Adám
źródło
1

Attache , 10 bajtów

`==#Unique

Wypróbuj online!

To jest rozwidlenie operatora `==i Uniquerównoważne z:

{ _ == Unique[_] }

Alternatywy

{#_=#Unique[_]} (15 bajtów)

Any##Same=>Pairs@Sort (21 bajtów)

Any@{`=&>_[[0'1,1'2,2'0]]} (26 bajtów)

&${not(x=y or y=z or x=z)} (26 bajtów)

&${x/=y and y/=z and x/=z} (26 bajtów)

{Any!Same=>Chop&2!_[0'1'1'2'2'0]} (33 bajty)

Conor O'Brien
źródło
1

Java 9, 43 27 bytes

thanks to @Olivier Grégoire

(a,b,c)->a!=b&b!=c&a!=c?1:0 

Previous attempt:

(a)->a[0]==a[1]||a[0]==a[2]||a[1]==a[2]?0:1
Quintec
źródło
1
Why not count it as 43 bytes
ASCII-only
1
27 bytes: (a,b,c)->a!=b&b!=c&a!=c?1:0.
Olivier Grégoire
Ponadto, pierwszy kod (100 bajtów) nie kompiluje się i używa, ==co nie ma zastosowania Stringbez problemów, które napotkasz tutaj (po poprawce kompilacji), a w drugim kodzie Set.ofmetoda wyrzuci, IllegalArgumentExceptionjeśli zostanie podany jakikolwiek duplikat . Kusi mnie do -1 za to, że w ogóle nie testuję.
Olivier Grégoire,
@olivier Przeprosiny - było późno i pomyślałem sobie kilka różnych pomysłów. Jeśli chodzi o Set.of, po prostu eksperymentowałem z załamaniami Java 9 i sam nie mam Java 9. Przepraszam, powinienem był uważniej przeczytać dokumentację. Będę edytować, gdy wejdę na komputer.
Quintec,
1

T-SQL, 39 bytes

SELECT IIF(a=b OR b=c OR c=a,0,1)FROM s

Input is taken as separate columns a, b, c from a pre-existing table s, per our IO standards.

Tried a variation using COUNT DISTINCT from input taken as separate rows, but that was a couple bytes longer.

BradC
źródło
1

Pyth, 3 bytes

s{I

Takes input as a list.
Try it here

Explanation

s{I
 {IQ     Check if the (implicit) input is invariant under deduplication.
s        Cast to int.

If we're allowed to treat True and False as 1 and 0 (which they are under the hood in Pyth), we can drop the s to get down to 2 bytes.


źródło
1

SmileBASIC, 25 24 bytes

READ A,B,C?A-B&&B-C&&C-A
12Me21
źródło
1

Brachylog, 6 bytes

d?∧1|0

Try it online!

short explanation

d? deduplcates input an test if still equal to input(?)

∧1 if true return 1

|0 else return 0

Kroppeb
źródło
1

><>, 19 17 bytes

-2 bytes by Jo King.

:{:{:{=}=}=++0=n;

Try it online!

PidgeyUsedGust
źródło
17 bytes
Jo King
I should have definitely caught that, thanks!
PidgeyUsedGust
@RushabhMehta Please do not golf other user's posts using other user's golfing suggestions.
Jonathan Frech
1

q 14 bytes

{x~distinct x}

Technically this solution will return '1b' or '0b', which is the way a boolean value is distinguished from a numeric type, though it retains all arithmetic functionality, and so is in essence a 1 or 0:

q)1b +35
36

To return 1 or 0 non-boolean you have the below, which takes the byte count to 21

{$[x~distinct x;1;0]}
Thaufeki
źródło
1
{1&/0N>':x?x}
ngn
1

Jelly, 5 6 bytes

ɠḲQL=3

Try it online!

From 5 to 6 bytes because this is my first time and I messed up (whoops) fixed it now

ɠḲQL=3
^^^^^
||||Is it equal to three?
|||How many unique numbers do we have? (length of unique numbers array)
||Sort By Unique
|Split by Spaces
Read Input
Kitten Hugger
źródło
1
Hello and welcome to PPCG. Does your code also work for 3 integers, or is it only functional for three digits?
Jonathan Frech
@Jonathan Frech Sadly, it only works for three 1 Digit numbers, it does this by sorting the input by unique characters, then testing if the amount of unique characters is the same length as the input. Maybe there is a way to get it to work with any 3 integers, but I think this is a good attempt for me at least!
Kitten Hugger
2
The challenge specifies You will be given 3 integers as input. which seems to render your answer invalid.
Jonathan Frech
@JonathanFrech Fixed it now! Was my first time doing this sort of thing so, I'm not the greatest at it.
Kitten Hugger