¿Son distintos los tres enteros?

14

Se le darán 3 enteros como entrada. Las entradas pueden o no ser diferentes entre sí. Debe emitir 1 si las tres entradas son diferentes entre sí y 0 si alguna entrada se repite más de una vez.

Este es el , ¡así que haga su código lo más corto posible!

subin saju
fuente
1
Bienvenido a PPCG. Bonito primer desafío. Somos bastante estrictos acerca de los criterios objetivos de ganar en este sitio. code-golf parece ser la opción obvia aquí, así que lo agregaré a tu publicación Corrígeme si me equivoco.
Adám
1
Algunos casos de prueba estarían bien.
Adám
19
El que se downvoting todas las respuestas, al menos, debería explicar por qué ...
Arnauld
1
@ Adám Creo que un título más preciso sería ¿Son distintos los tres enteros?
Arnauld
55
Mi voto de engaño es un martillo, pero posible duplicado de " Determinar si todos los dígitos decimales son únicos " Ligeramente diferente, pero la mayoría de las respuestas aún se pueden portar.
Kevin Cruijssen

Respuestas:

10

Python 3 , 23 21 20 bytes

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

Pruébalo en línea!

TFeld
fuente
OP solicitó 1 vs. 0, por lo que tal vez necesite un byte más:lambda*a:len({*a})//3
tsh
@tsh en Python 1 == True, creo que hay una meta publicación al respecto en algún lugar
Stephen
1
@tsh - meta relevante "si grazna como un número, es un número" - en Python: False * Trueis 0; False + Truees 1; etc ...
Jonathan Allan
Desde el meta relevante: "esto no se aplica a los desafíos donde se requiere una salida de cadena exacta", por lo que no estoy seguro de lo que realmente se aplica aquí.
GB
8

R , 13 bytes

¡Una solución diferente a @Kirill utilizando mad()para un propósito no deseado!

mad(scan())>0

Pruébalo en línea!

J.Doe
fuente
1
La entrada del pozo no está especificada en absoluto, por lo que la OMI que acepta 3 valores como entrada significa que podemos aceptar un vector
digEmAll
2
¡R casi compite con los idiomas de golf! : D
digEmAll
1
Creo que Gauss inventó madexactamente para este propósito.
ngm
5

R , 24 22 20 bytes

all(table(scan())<2)

Pruébalo en línea!

Devuelve un valor booleano, pero como la gente ya ha discutido sobre la respuesta de Python , esto debería estar bien.

Gracias a digEmAll por guardar 2 bytes.

Kirill L.
fuente
11 bytes : si se le permite tener cualquier número> 0 como verdad. De lo contrario, añadir >0para TRUE/FALSEla producción en 13 bytes.
J.Doe
1
Wow, ni siquiera sabía sobre esta función. Te sugiero que lo publiques por separado (edita y revive tu respuesta eliminada), pero creo que tienes que quedarte con 13 bytes, mientras que T / F actúa como 1/0, 1.48 no.
Kirill L.
5

JavaScript, 22 bytes

Si podemos generar valores booleanos, se pueden eliminar los últimos 2 bytes.

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

Pruébalo en línea

Para el mismo recuento de bytes, esto funciona en matrices de cualquier tamaño, pero supone que la entrada nunca contendrá 0ay la salida es booleana.

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

Pruébalo en línea

Lanudo
fuente
Suponiendo que podamos tomar la entrada como una matriz y devolver un booleano:a=>new Set(a).size>2
Arnauld
@Arnauld, sí, yo también tuve eso, pero tal como está la especificación no lo permitirá, aunque se actualizará si la especificación cambia.
Shaggy
Oh espera. Solo puedo agregar &122 bytes.
Shaggy
4

Ruby , 16 bytes

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

Pruébalo en línea!

GB
fuente
-3 bytes conuniq!
benj2240
Boolean e Integer son diferentes tipos en Ruby.
GB
Ah, tienes razon. No leí el desafío lo suficientemente de cerca, y asumí que un resultado verdadero / falso sería suficiente.
benj2240
4

Cubix , 55 25 bytes

-29 gracias a Jo King

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

Pruébalo en línea!

Debería ser posible jugar al golf bastantes bytes.

Luke
fuente
26 bytes
Jo King
Muchas gracias. Me las arreglé para reducir 1 byte más para llegar a 25 bytes en total
Luke
Creo que te puedes perder un @lugar .en el noveno lugar. Hace que haga algunas cosas funky por 1 2 2.
MickyT
3

05AB1E , 2 bytes

ÙQ

Pruébelo en línea o verifique algunos casos más .

Explicación:

Ù     # Uniquify the (implicit) input
 Q    # Check if it's still equal to the (implicit) input
Kevin Cruijssen
fuente
El uso de reglas estándar de verdad / falsedad para el problema de decisión , teniendo en cuenta que 1es el único valor de verdad en 05AB1E, ¢Pfunciona tan bien como un 2-byter alternativo.
Sr. Xcoder
1
@ Mr.Xcoder No estoy seguro de que actualmente sea válido (la pregunta pide las salidas 1 y 0) 4, por ejemplo, no es 1ni 0, ni actúa como 1o 0(como Truey Falsehacer en Python). La pregunta probablemente debería preguntar por Truthy / Falsey, pero en este momento no.
Jonathan Allan
3

Mathematica, 13 bytes

Boole[E!=##]&

Pure function. Takes three integers as input and returns 0 or 1 as output. I know that this is rather similar to David G. Stork's answer, but it exploits SlotSequence to shave off a byte (as compared to Boole@*Unequal).

LegionMammal978
fuente
3

brainfuck, 91 bytes

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

Try it online!

How it works

,>,>,                   '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
fuente
2

Japt -N, 3 bytes

eUâ

Try it


Explanation

deduplicates the input and e tests if it's equal to the original.

Shaggy
fuente
2

J , 4 bytes

-:~.

Pruébalo en línea!

Explicación:

¿Es el argumento igual -:a sí mismo después de eliminar los duplicados?~.

Galen Ivanov
fuente
2

Powershell, 27 25 bytes

-2 bytes gracias @AdmBorkBork

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

Script de prueba:

$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

Explicación:

    $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
fuente
1
26 bytes -+(($args|group).count-eq3)
AdmBorkBork
¡genial! y gracias
mazzy
2

Lisp común, 25 2 bytes

/=

Pruébalo en línea!

-23 bytes gracias a @ceilingcat!

Renzo
fuente
Gracias, @ceilingcat, ¡he actualizado la respuesta!
Renzo
1

Adjunto , 10 bytes

`==#Unique

Pruébalo en línea!

Esta es una bifurcación del operador `==y Unique, equivalente a:

{ _ == Unique[_] }

Alternativas

{#_=#Unique[_]} (15 bytes)

Any##Same=>Pairs@Sort (21 bytes)

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

&${not(x=y or y=z or x=z)} (26 bytes)

&${x/=y and y/=z and x/=z} (26 bytes)

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

Conor O'Brien
fuente
1

Java 9, 43 27 bytes

gracias a @Olivier Grégoire

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

Intento anterior:

(a)->a[0]==a[1]||a[0]==a[2]||a[1]==a[2]?0:1
Quintec
fuente
1
¿Por qué no contarlo como 43 bytes
Solo ASCII
1
27 bytes : (a,b,c)->a!=b&b!=c&a!=c?1:0.
Olivier Grégoire
Además, el primer código (100 bytes) no se compila y usa lo ==que no es aplicable Stringsin problemas que encuentre aquí (después de la corrección de compilación), y en el segundo código, el Set.ofmétodo arrojará IllegalArgumentExceptionsi se proporciona algún duplicado . Estoy tentado a -1 por no probar en absoluto.
Olivier Grégoire
@olivier Disculpas, era tarde y confundí algunas ideas diferentes en mi cabeza. En cuanto a Set.of, solo estaba experimentando con problemas de Java 9 y no tengo Java 9. Debería haber leído la documentación con más cuidado, lo siento. Lo editaré una vez que esté en mi computadora.
Quintec
1

T-SQL, 39 bytes

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

La entrada se toma como columnas separadas a, b, c de una tabla preexistente s , según nuestros estándares IO .

Intenté una variación usando la COUNT DISTINCTentrada tomada como filas separadas, pero eso fue un par de bytes más.

BradC
fuente
1

Pyth, 3 bytes

s{I

Toma la entrada como una lista.
Pruébalo aquí

Explicación

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

Si se nos permite tratar Verdadero y Falso como 1 y 0 (que están debajo del capó en Pyth), podemos soltar el spara bajar a 2 bytes.


fuente
1

SmileBASIC, 25 24 bytes

READ A,B,C?A-B&&B-C&&C-A
12Me21
fuente
1

Brachylog , 6 bytes

d?∧1|0

Pruébalo en línea!

explicación breve

d? d eduplcates input a test si aún es igual a input ( ? )

∧1 si es verdadero retorno 1

|0 de lo contrario, devuelve 0

Kroppeb
fuente
1

> <> , 19 17 bytes

-2 bytes por Jo King.

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

Pruébalo en línea!

PidgeyUsedGust
fuente
17 bytes
Jo King
Definitivamente debería haber captado eso, ¡gracias!
PidgeyUsedGust
@RushabhMehta Por favor, no juegue al golf las publicaciones de otros usuarios utilizando las sugerencias de golf de otros usuarios.
Jonathan Frech
1

q 14 bytes

{x~distinct x}

Técnicamente, esta solución devolverá '1b' o '0b', que es la forma en que se distingue un valor booleano de un tipo numérico, aunque conserva toda la funcionalidad aritmética, por lo que es esencialmente un 1 o 0:

q)1b +35
36

Para devolver 1 o 0 no booleano, tiene lo siguiente, que lleva el recuento de bytes a 21

{$[x~distinct x;1;0]}
Thaufeki
fuente
1
{1&/0N>':x?x}
ngn
1

Jalea , 5 6 bytes

ɠḲQL=3

Pruébalo en línea!

De 5 a 6 bytes porque esta es mi primera vez y lo arreglé (whoops) lo arreglé ahora

ɠḲ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
Gatito hugger
fuente
1
Hola y bienvenidos a PPCG. ¿Su código también funciona 3 integerso es solo funcional para tres dígitos?
Jonathan Frech
@Jonathan Frech Lamentablemente, solo funciona para tres números de 1 dígito, lo hace clasificando la entrada por caracteres únicos y luego prueba si la cantidad de caracteres únicos tiene la misma longitud que la entrada. Tal vez haya una manera de hacerlo funcionar con 3 enteros, ¡pero creo que este es un buen intento para mí al menos!
Kitten Hugger
2
El desafío especifica que se le darán 3 enteros como entrada. lo que parece invalidar su respuesta.
Jonathan Frech
@JonathanFrech ¡Lo arregló ahora! Era mi primera vez haciendo este tipo de cosas, así que no soy el mejor en eso.
Kitten Hugger