¿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!


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!


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!


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.



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


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

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.



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

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).


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
]

2

Japt -N, 3 bytes

eUâ

Try it


Explanation

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





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

1
26 bytes -+(($args|group).count-eq3)
AdmBorkBork

¡genial! y gracias
mazzy





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)


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

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.


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.


1

SmileBASIC, 25 24 bytes

READ A,B,C?A-B&&B-C&&C-A



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]}

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.