Üç tamsayı da farklı mı?


14

Size giriş olarak 3 tamsayı verilecektir. Girişler birbirinden farklı olabilir veya olmayabilir. Her üç giriş de birbirinden farklıysa 1, herhangi bir giriş birden çok kez tekrarlanırsa 0 vermeniz gerekir.

Bu , bu yüzden kodunuzu mümkün olduğunca kısa yapın!


1
PPCG'ye hoş geldiniz. Güzel ilk meydan okuma. Bu sitede objektif kazanma kriterleri konusunda oldukça katıyız. code-golf burada bariz bir seçim gibi görünüyor, bu yüzden bunu yazıya ekleyeceğim. Yanlışsam düzelt.
Adam

1
Bazı test senaryoları iyi olurdu.
Adam

19
Kim tüm cevapları küçümsüyorsa, en azından nedenini açıklamalıdır ...
Arnauld

1
@ Adám Daha doğru bir başlık olacağını düşünüyorum Üç tamsayı da farklı mı?
Arnauld

5
Benim dupe-oy çekiç, ama Olası yinelenen " tüm ondalık basamak benzersiz olup olmadığını belirlemek " Biraz farklı, ama çoğu cevaplar hala taşınabilir.
Kevin Cruijssen

Yanıtlar:


10

Python 3 , 23 21 20 bayt

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

Çevrimiçi deneyin!


OP 1'e karşı 0 istedi, bu yüzden belki de bir bayta daha ihtiyacınız var:lambda*a:len({*a})//3
tsh

@tsh Python 1 == True, sanırım bu konuda bir meta yazı var
Stephen

1
@tsh - related meta "bir sayı gibi quack yaparsa , bu bir sayıdır" - Python'da: False * Trueis 0; False + Trueolduğu 1; vb ...
Jonathan Allan

İlgili metadan: "Bu, tam bir dize çıktısının gerekli olduğu zorluklar için geçerli değildir", bu yüzden burada gerçekten neyin geçerli olduğundan emin değilim.
GB


8

R , 13 bayt

@Kirill'e mad()istenmeyen bir amaç için farklı bir çözüm !

mad(scan())>0

Çevrimiçi deneyin!


1
Kuyu girişi hiç belirtilmemiştir, bu nedenle IMO 3 değeri giriş olarak kabul eder, bir vektörü kabul edebileceğimiz anlamına gelir
digEmAll

2
R neredeyse golf dilleriyle rekabet ediyor! : D
digEmTüm

1
Gauss'un madtam da bu amaçla icat ettiğine inanıyorum .
ngm

5

R , 24 22 20 bayt

all(table(scan())<2)

Çevrimiçi deneyin!

Bir boole döndürür, ancak millet Python cevabı üzerinde zaten tartıştığından , bu iyi olmalıdır.

2 bayt tasarruf için digEmAll'a teşekkürler.



11 bayt - doğruluk payı> 0 olan herhangi bir sayıya izin verilirse. Aksi takdirde, ekleme >0için TRUE/FALSE13 bayt çıkış.
J.Doe

1
Vay canına, bu işlevi bile bilmiyordum. Ayrı olarak yayınlamanızı öneririm (silinen cevabınızı düzenleyin ve canlandırın), ancak sanırım 13 bayt ile yapışmanız gerekiyor - T / F gerçekten 1/0, 1.48 gibi davranmıyor.
Kirill L.

5

JavaScript, 22 bayt

Boole değerleri çıkarabilirsek, son 2 bayt kaldırılabilir.

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

Çevrimiçi deneyin

Aynı bayt sayısı için bu, herhangi bir boyuttaki dizilerde çalışır, ancak girişin asla bir içermeyeceğini 0ve çıktının bir boole olduğunu varsayar .

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

Çevrimiçi deneyin


Girdiyi bir dizi olarak alıp bir Boole döndürebileceğimizi varsayarsak:a=>new Set(a).size>2
Arnauld

@ Arnauld, evet ben de vardı ama spec olarak izin vermez standları olsa - spec değişirse güncellenecektir.
Shaggy

Bekle. Sadece &122 bayt tutturuyorum.
Shaggy


4

Cubix , 55 25 bayt

-29 Jo King sayesinde

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

Çevrimiçi deneyin!

Birkaç bayt golf oynamak mümkün olmalıdır.



Çok teşekkürler. Toplam 25 bayta ulaşmak için 1 bayt daha tıraş etmeyi başardım
Luke

Sana bir eksik olduğunu düşündüğümüzde @yerine .9 noktada. 1 2 2 için bazı korkak şeyler yapar.
MickyT

3

05AB1E , 2 bayt

ÙQ

Çevrimiçi deneyin veya daha fazla vakayı doğrulayın .

Açıklama:

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

Karar problemi için standart doğruluk / falsy kurallarını kullanmak , 105AB1E'deki tek doğruluk değeri olduğunu akılda tutarak, ¢Palternatif bir 2 byter yanı sıra çalışır.
Bay Xcoder

1
@ Mr.Xcoder Şu anda geçerli olduğundan emin değilim - soru 1 ve 0 çıktılarını soruyor - 4örneğin, ne ne 1de0 , ne gibi davranmıyor 1veya 0(gibi Trueve FalsePython yapmak). Soru muhtemelen Truthy / Falsey'i istemelidir, ancak şu anda istememektedir.
Jonathan Allan

3

Mathematica, 13 bayt

Boole[E!=##]&

Saf fonksiyon. Üç tamsayıyı girdi ve geri 0veya 1çıktı olarak alır. Bunun David G. Stork'un cevabına oldukça benzediğini biliyorum , ancak SlotSequencebir baytı tıraş etmek için sömürüyor (ile karşılaştırıldığında Boole@*Unequal).


3

beyinli , 91 bayt

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

Çevrimiçi deneyin!

Nasıl çalışır

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

eUâ

Dene


açıklama

girdiyi tekilleştirir ve eorijinaline eşit olup olmadığını test eder.





2

Powershell, 27 25 bayt

-2 bayt teşekkürler @AdmBorkBork

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

Test komut dosyası:

$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

Açıklama:

    $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 bayt -+(($args|group).count-eq3)
AdmBorkBork

harika! ve teşekkürler
mazzy





1

Ataşman , 10 bayt

`==#Unique

Çevrimiçi deneyin!

Bu operatörün çatal `==ve Uniqueeşdeğer:

{ _ == Unique[_] }

Alternatifler

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

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

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

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

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

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


1

Java 9, 43 27 bayt

@Olivier Grégoire sayesinde

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

Önceki deneme:

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

1
Neden 43 bayt olarak
sadece ASCII sadece

1
27 bayt : (a,b,c)->a!=b&b!=c&a!=c?1:0.
Olivier Grégoire

Ayrıca, ilk kod (100 bayt) derlenmez ve burada karşılaştığınız sorunlar olmadan ==geçerli değildir (derleme düzeltmesinden sonra) ve ikinci kodda, herhangi bir kopya sağlandığında yöntem atılır . Ben hiç test için -1 için cazip. StringSet.ofIllegalArgumentException
Olivier Grégoire

@olivier Özür-geç oldu ve kafamda birkaç farklı fikir karıştırdım. Set.of'a gelince, sadece Java 9 bükülmeleriyle denemeler yapıyordum ve Java 9'um yok. Belgeleri daha dikkatli okumalıydım, bunun için üzgünüm. Bilgisayarıma girdikten sonra düzenleme yapacağım.
Quintec


1

T-SQL, 39 bayt

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

Girdi ayrı sütunlar olarak alınır a, b, c, önceden var olan bir tablo ile ilgili s , bizim ES standartlarına göre .

COUNT DISTINCTAyrı satırlar olarak alınan girdiden bir varyasyon denedi, ancak bu birkaç bayt daha uzun oldu.


1

Pyth, 3 bayt

s{I

Girişi liste olarak alır.
Burada deneyin

açıklama

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

Doğru ve Yanlış olarak 1 ve 0 (Pyth'teki kaputun altındalar) olarak davranmamıza izin verilirse s, 2 bayta düşmek için.





1

q 14 bayt

{x~distinct x}

Teknik olarak bu çözüm, tüm aritmetik işlevselliği korurken boolean değerinin sayısal bir türden ayırt edilmesinin yolu olan '1b' veya '0b' döndürür ve aslında 1 veya 0'dır:

q)1b +35
36

Boolean olmayan 1 veya 0 değerini döndürmek için, bayt sayısını 21'e getiren aşağıdakilere sahipsiniz.

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

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


1

Jöle , 5 6 bayt

ɠḲQL=3

Çevrimiçi deneyin!

5 ila 6 bayt çünkü bu benim ilk kez ve ben berbat (whoops) şimdi düzeltti

ɠḲ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
Merhaba ve PPCG'ye hoş geldiniz. Kodunuz da çalışıyor mu 3 integers, yoksa yalnızca üç basamak için mi çalışıyor?
Jonathan Frech

@Jonathan Frech Ne yazık ki, sadece üç 1 Haneli sayı için çalışır, bunu girişi benzersiz karakterlere göre sıralayarak ve ardından benzersiz karakter miktarının girişle aynı uzunlukta olup olmadığını test ederek yapar. Belki de herhangi bir 3 tamsayı ile çalışmanın bir yolu var, ama bence bu en azından benim için iyi bir girişim!
Kitten Hugger

2
Zorluk, girdi olarak 3 tamsayı verileceğini belirtir . bu da cevabınızı geçersiz kılıyor gibi görünüyor.
Jonathan Frech

@JonathanFrech Şimdi düzeltin! İlk defa böyle bir şey yapıyordum, bu yüzden en iyisi değilim.
Kitten Hugger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.