Все три целых числа различны?


14

Вам дадут 3 целых числа в качестве входных данных. Входы могут или не могут отличаться друг от друга. Вы должны вывести 1, если все три входа отличаются друг от друга, и 0, если любой вход повторяется более одного раза.

Это , поэтому сделайте ваш код как можно короче!


1
Добро пожаловать в PPCG. Хороший первый вызов. Мы достаточно строги в отношении объективных критериев выигрыша на этом сайте. Код-гольф кажется очевидным выбором, поэтому я добавлю это в ваш пост. Поправьте меня если я ошибаюсь.
Адам

1
Некоторые тестовые случаи были бы хорошими.
Адам

19
Тот, кто отрицает все ответы, должен хотя бы объяснить, почему ...
Арнаулд

1
@ Adám Я думаю, что более точный заголовок был бы Различны ли все три целых числа?
Арно

5
Мое двойное голосование - это молот, но возможный дубликат « Определить, все ли десятичные цифры уникальны ». Немного отличается, но большинство ответов все еще можно перенести.
Кевин Круйссен

Ответы:


10

Python 3 , 23 21 20 байт

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

Попробуйте онлайн!


ОП попросил 1 против 0, поэтому, возможно, вам нужен еще один байт:lambda*a:len({*a})//3
февраля

@tsh в Python 1 == True, я думаю, что где-то есть мета пост
Стивен

1
@tsh - релевантная мета «если крякает как число, это число» - в Python: False * Trueis 0; False + Trueесть 1; и т.д ...
Джонатан Аллан

Из соответствующей мета: «это не относится к задачам, где требуется точный вывод строки», поэтому я не уверен, что действительно применимо здесь.
GB


8

R 13 байт

Другое решение для @Kirill, использующее mad()для непреднамеренных целей!

mad(scan())>0

Попробуйте онлайн!


1
Входные данные для скважины вообще не указаны, поэтому IMO, принимающий 3 значения в качестве входных данных, означает, что мы можем принять вектор
digEmAll

2
R почти конкурирует с языками гольфа! : D
digEmAll

1
Я считаю, что Гаусс придумал madименно для этой цели.
ноября

5

R , 24 22 20 байт

all(table(scan())<2)

Попробуйте онлайн!

Возвращает логическое значение, но, поскольку люди уже обсуждали ответ Python , все должно быть в порядке.

Спасибо digEmAll за сохранение 2 байта.



11 байтов - если вам разрешено иметь любое число> 0 в качестве значения truthey. В противном случае добавьте >0для TRUE/FALSEвывода в 13 байтов.
J.Doe

1
Вау, даже не знал об этой функции. Я бы посоветовал вам опубликовать его отдельно (отредактировать и восстановить удаленный ответ), но я думаю, что вы должны придерживаться 13 байтов - в то время как T / F действительно действует как 1/0, 1,48 - нет.
Кирилл Л.

5

JavaScript, 22 байта

Если мы можем вывести логические значения, то последние 2 байта могут быть удалены.

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

Попробуйте онлайн

При том же количестве байтов это работает для массивов любого размера, но предполагает, что входные данные никогда не будут содержать a, 0а выходные данные - логические.

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

Попробуйте онлайн


Предполагая, что мы можем принять входные данные в виде массива и вернуть логическое значение:a=>new Set(a).size>2
Арно

@Arnauld, да, у меня это тоже было, но в нынешнем виде спецификация не позволит - будет обновляться, если спецификация изменится.
Лохматый

Ой, подожди. Я могу просто добавить &122 байта.
Лохматый


4

Cubix , 55 25 байт

-29 благодаря Джо Кингу

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

Попробуйте онлайн!

Должно быть возможным отключить несколько байтов.



Большое спасибо. Мне удалось сбрить еще 1 байт, чтобы получить в общей сложности 25 байтов
Лука,

Я думаю, что вы можете пропустить @вместо .9-го места. Заставляет это делать некоторые забавные вещи для 1 2 2.
MickyT

3

05AB1E , 2 байта

ÙQ

Попробуйте онлайн или проверьте еще несколько случаев .

Объяснение:

Ù     # Uniquify the (implicit) input
 Q    # Check if it's still equal to the (implicit) input

Использование стандартных правил правдивости / ложности для решения проблемы , учитывая, что 1это единственное достоверное значение в 05AB1E, ¢Pработает так же, как альтернативный 2-байтовый.
г-н Xcoder

1
@ Mr.Xcoder Я не уверен, что это действительно актуально в настоящее время - вопрос требует выводов 1 и 0 - 4например, ни, 1ни 0, ни не действует как 1или 0(как Trueи Falseв Python). Вопрос, вероятно, следует задавать для Truthy / Falsey, но в настоящее время это не так.
Джонатан Аллан

3

Mathematica, 13 байт

Boole[E!=##]&

Чистая функция. Принимает три целых числа как входные данные и возвращает 0или 1как выходные данные. Я знаю, что это довольно похоже на ответ Дэвида Г. Сторка , но он использует SlotSequenceдля сброса байта (по сравнению с Boole@*Unequal).


3

брейкфук , 91 байт

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

Попробуйте онлайн!

Как это устроено

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

Powershell, 27 25 байт

-2 байта спасибо @AdmBorkBork

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

Тестовый скрипт:

$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

Объяснение:

    $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 байт -+(($args|group).count-eq3)
AdmBorkBork

отличный! и спасибо
Маззи





1

Атташе , 10 байт

`==#Unique

Попробуйте онлайн!

Это форк оператора `==и Unique, эквивалентно:

{ _ == Unique[_] }

альтернативы

{#_=#Unique[_]} (15 байт)

Any##Same=>Pairs@Sort (21 байт)

Any@{`=&>_[[0'1,1'2,2'0]]} (26 байт)

&${not(x=y or y=z or x=z)} (26 байт)

&${x/=y and y/=z and x/=z} (26 байт)

{Any!Same=>Chop&2!_[0'1'1'2'2'0]} (33 байта)


1

Java 9, 43 27 байт

благодаря @ Оливье Грегуар

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

Предыдущая попытка:

(a)->a[0]==a[1]||a[0]==a[2]||a[1]==a[2]?0:1

1
Почему бы не считать это как 43 байта
только ASCII

1
27 байт : (a,b,c)->a!=b&b!=c&a!=c?1:0.
Оливье Грегуар

Кроме того, первый код (100 байт) не компилируется и использует, ==что неприменимо Stringбез проблем, с которыми вы здесь сталкиваетесь (после исправления компиляции), а во втором коде Set.ofметод сгенерирует, IllegalArgumentExceptionесли будет предоставлен какой-либо дубликат . Я склонен к -1, чтобы вообще не проверять.
Оливье Грегуар

@olivier Извинения - было поздно, и я перепутал несколько разных идей в моей голове. Что касается Set.of, я просто экспериментировал с изломами Java 9 и сам не имел Java 9. Я должен был прочитать документацию более внимательно, извините за это. Я отредактирую, как только получу на свой компьютер.
Quintec


1

T-SQL, 39 байт

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

Входные данные взяты как отдельные столбцы a, b, c из ранее существующей таблицы s , в соответствии с нашими стандартами IO .

Попробовал вариант, используя COUNT DISTINCTвходные данные, взятые как отдельные строки, но это было на пару байтов длиннее.


1

Pyth, 3 байта

s{I

Принимает ввод в виде списка.
Попробуй здесь

объяснение

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

Если нам разрешено рассматривать True и False как 1 и 0 (которые они скрыты в Pyth), мы можем уменьшить sзначение до 2 байтов.




1

> <> , 19 17 байт

-2 байта Джо Кинг.

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

Попробуйте онлайн!



Я должен был определенно поймать это, спасибо!
PidgeyUsedGust

@RushabhMehta Пожалуйста, не играйте в гольф посты других пользователей, используя подсказки других игроков.
Джонатан Фрех,

1

q 14 байтов

{x~distinct x}

Технически это решение будет возвращать «1b» или «0b», что отличает логическое значение от числового типа, хотя оно сохраняет все арифметические функции и, по сути, равно 1 или 0:

q)1b +35
36

Чтобы вернуть 1 или 0 не-логическое значение, у вас есть ниже, который принимает количество байтов до 21

{$[x~distinct x;1;0]}

1
{1&/0N>':x?x}
НГН


1

Желе , 5 6 байт

ɠḲQL=3

Попробуйте онлайн!

От 5 до 6 байт, потому что это мой первый раз, и я испортил (упс) исправил это сейчас

ɠḲ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
Привет и добро пожаловать в PPCG. Ваш код также работает 3 integers, или он функционален только для трех цифр?
Джонатан Фрех

@Jonathan Frech К сожалению, он работает только для трех однозначных чисел, он делает это путем сортировки ввода по уникальным символам, а затем проверяет, совпадает ли количество уникальных символов с длиной ввода. Может быть, есть способ заставить его работать с любыми тремя целыми числами, но я думаю, что это хорошая попытка для меня, по крайней мере!
Котенок Хаггер,

2
В задании указано, что вам дадут 3 целых числа в качестве входных данных. что делает ваш ответ недействительным.
Джонатан Фрех

@JonathanFrech Исправлено сейчас! Я впервые так делал, поэтому я не самый лучший в этом.
Котенок Хаггер,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.