Cả ba số nguyên có khác nhau không?


14

Bạn sẽ được cung cấp 3 số nguyên làm đầu vào. Các đầu vào có thể hoặc không thể khác nhau. Bạn phải xuất 1 nếu cả ba đầu vào khác nhau và 0 nếu bất kỳ đầu vào nào được lặp lại nhiều lần.

Đây là , vì vậy hãy viết mã của bạn càng ngắn càng tốt!


1
Chào mừng đến với PPCG. Thử thách đầu tiên tốt đẹp. Chúng tôi khá nghiêm ngặt về các tiêu chí chiến thắng khách quan trên trang web này. code-golf dường như là sự lựa chọn rõ ràng ở đây, vì vậy tôi sẽ thêm nó vào bài viết của bạn. Sửa tôi nếu tôi sai.
Adám

1
Một số trường hợp thử nghiệm sẽ được tốt đẹp.
Adám

19
Bất cứ ai đang hạ thấp tất cả các câu trả lời ít nhất nên giải thích lý do tại sao ...
Arnauld

1
@ Adám Tôi nghĩ một tiêu đề chính xác hơn sẽ là cả ba số nguyên có khác nhau không?
Arnauld

5
Phiếu bầu của tôi là một cái búa, nhưng có thể trùng lặp " Xác định xem tất cả các chữ số thập phân là duy nhất " Khác nhau một chút, nhưng hầu hết các câu trả lời vẫn có thể được chuyển.
Kevin Cruijssen

Câu trả lời:


10

Python 3 , 23 21 20 byte

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

Hãy thử trực tuyến!


OP đã yêu cầu 1 so với 0, vì vậy có thể bạn cần thêm một byte:lambda*a:len({*a})//3
tsh

@tsh trong Python 1 == True, tôi nghĩ rằng có một bài đăng meta về nó ở đâu đó
Stephen

1
@tsh - meta có liên quan "nếu nó giống như một số, thì đó là một số" - trong Python: False * Trueis 0; False + True1; v.v ...
Jonathan Allan

Từ meta có liên quan: "điều này không áp dụng cho các thách thức đòi hỏi phải có đầu ra chuỗi chính xác", vì vậy tôi không chắc điều gì thực sự áp dụng ở đây.
GB


8

R , 13 byte

Một giải pháp khác cho @Kirill bằng cách sử dụng mad()cho mục đích ngoài ý muốn!

mad(scan())>0

Hãy thử trực tuyến!


1
Đầu vào tốt hoàn toàn không được chỉ định, vì vậy IMO chấp nhận 3 giá trị làm đầu vào nghĩa là chúng ta có thể chấp nhận một vectơ
digEmAll

2
R gần như cạnh tranh với các ngôn ngữ golf! : D
digEmAll

1
Tôi tin rằng Gauss đã phát minh madchính xác cho mục đích này.
ngm

5

R , 24 22 20 byte

all(table(scan())<2)

Hãy thử trực tuyến!

Trả về một boolean, nhưng như mọi người đã thảo luận về câu trả lời của Python , điều này sẽ ổn thôi.

Cảm ơn digEmAll đã lưu 2 byte.



11 byte - nếu bạn được phép có bất kỳ số nào> 0 là trueey. Nếu không, nối thêm >0cho TRUE/FALSEsản lượng trong 13 byte.
J.Doe

1
Wow, thậm chí không biết về chức năng này. Tôi khuyên bạn nên đăng riêng nó (chỉnh sửa và khôi phục câu trả lời đã xóa của bạn), nhưng tôi nghĩ bạn phải gắn bó với 13 byte - trong khi T / F thực sự hoạt động như 1/0, 1.48 thì không.
Kirill L.

5

JavaScript, 22 byte

Nếu chúng ta có thể xuất các giá trị boolean thì 2 byte cuối cùng có thể được loại bỏ.

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

Dùng thử trực tuyến

Đối với cùng một số byte, điều này hoạt động trên các mảng có kích thước bất kỳ nhưng giả sử đầu vào sẽ không bao giờ chứa a 0và đầu ra là boolean.

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

Dùng thử trực tuyến


Giả sử rằng chúng ta có thể lấy đầu vào dưới dạng một mảng và trả về Boolean:a=>new Set(a).size>2
Arnauld

@Arnauld, vâng tôi cũng có cái đó nhưng vì thông số kỹ thuật sẽ không cho phép - mặc dù vậy, thông số kỹ thuật sẽ thay đổi.
Xù xì

Oh, đợi đã. Tôi chỉ có thể giải &1quyết cho 22 byte.
Xù xì


4

Khối , 55 25 byte

-29 cảm ơn Jo King

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

Hãy thử trực tuyến!

Có thể chơi golf khá nhiều byte.



Cảm ơn rất nhiều. Tôi đã cố gắng loại bỏ thêm 1 byte để đạt tổng cộng 25 byte
Luke

Tôi nghĩ rằng bạn có thể đang thiếu một @vị trí .ở vị trí thứ 9. Làm cho nó làm một số điều thú vị cho 1 2 2.
MickyT

3

05AB1E , 2 byte

ÙQ

Hãy thử trực tuyến hoặc xác minh một số trường hợp .

Giải trình:

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

Sử dụng các quy tắc trung thực / giả mạo tiêu chuẩn cho vấn đề quyết định , hãy nhớ rằng đó 1là giá trị trung thực duy nhất trong 05AB1E, ¢Phoạt động cũng như một thay thế 2 lần.
Ông Xcoder

1
@ Mr.Xcoder Tôi không chắc điều đó thực sự hợp lệ - câu hỏi yêu cầu đầu ra 1 và 0 - 4ví dụ, không phải 1cũng không 0, cũng không hành động như 1hoặc 0(thích TrueFalselàm trong Python). Câu hỏi có lẽ nên hỏi Truthy / Falsey nhưng hiện tại thì không.
Jonathan Allan

3

Toán học, 13 byte

Boole[E!=##]&

Chức năng thuần túy. Có ba số nguyên là đầu vào và trả về 0hoặc 1là đầu ra. Tôi biết rằng điều này khá giống với câu trả lời của David G. Stork , nhưng nó khai thác SlotSequenceđể loại bỏ một byte (so với Boole@*Unequal).


3

Brainfuck , 91 byte

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

Hãy thử trực tuyến!

Làm thế nào nó hoạt động

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

eUâ

Thử nó


Giải trình

lặp lại đầu vào và ekiểm tra nếu nó bằng với bản gốc.





2

Powershell, 27 25 byte

-2 byte cảm ơn @AdmBorkBork

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

Kịch bản thử nghiệm:

$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

Giải trình:

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

tuyệt quá! và cảm ơn
mazzy





1

Tùy viên , 10 byte

`==#Unique

Hãy thử trực tuyến!

Đây là một nhánh của toán tử `==Unique, tương đương với:

{ _ == Unique[_] }

Lựa chọn thay thế

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

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

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

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

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

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


1

Java 9, 43 27 byte

cảm ơn @Olivier Grégoire

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

Lần thử trước:

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

1
Tại sao không tính nó là 43 byte
ASCII

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

Ngoài ra, mã đầu tiên (100 byte) không biên dịch và sử dụng ==mà không áp dụng được Stringnếu không có vấn đề mà bạn gặp phải ở đây (sau khi sửa lỗi biên dịch) và trong mã thứ hai, Set.ofphương thức sẽ ném IllegalArgumentExceptionnếu có bất kỳ trùng lặp nào được cung cấp . Tôi bị cám dỗ đến -1 vì không kiểm tra gì cả.
Olivier Grégoire

@olivier Xin lỗi - đã muộn và tôi đã trộn lẫn một vài ý tưởng khác nhau trong đầu. Đối với Set.of, tôi chỉ đang thử nghiệm các kink Java 9 và bản thân tôi không có Java 9. Tôi nên đọc tài liệu cẩn thận hơn, xin lỗi về điều đó. Tôi sẽ chỉnh sửa một khi tôi nhận được trên máy tính của mình.
Quintec


1

T-SQL, 39 byte

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

Đầu vào được lấy dưới dạng các cột riêng biệt a, b, c từ một bảng có sẵn s , theo các tiêu chuẩn IO của chúng tôi .

Đã thử một biến thể sử dụng COUNT DISTINCTtừ đầu vào được lấy dưới dạng các hàng riêng biệt, nhưng đó là một vài byte dài hơn.


1

Bình thường, 3 byte

s{I

Lấy đầu vào như một danh sách.
Hãy thử nó ở đây

Giải trình

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

Nếu chúng ta được phép coi Đúng và Sai là 1 và 0 (chúng nằm dưới mui xe trong Pyth), chúng ta có thể thả xuống sđể xuống còn 2 byte.





1

q 14 byte

{x~distinct x}

Về mặt kỹ thuật, giải pháp này sẽ trả về '1b' hoặc '0b', đó là cách phân biệt giá trị boolean với một loại số, mặc dù nó giữ lại tất cả chức năng số học, và về bản chất là 1 hoặc 0:

q)1b +35
36

Để trả về 1 hoặc 0 không phải boolean, bạn có phần dưới đây, tính số byte là 21

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

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


1

Thạch , 5 6 byte

ɠḲQL=3

Hãy thử trực tuyến!

Từ 5 đến 6 byte vì đây là lần đầu tiên của tôi và tôi đã sửa lỗi (rất tiếc) đã sửa nó ngay bây giờ

ɠḲ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
Xin chào và chào mừng đến với PPCG. Có phải mã của bạn cũng hoạt động được không 3 integers, hay nó chỉ hoạt động với ba chữ số?
Jonathan Frech

@Jonathan Frech Đáng buồn thay, nó chỉ hoạt động với ba số 1 Chữ số, nó thực hiện điều này bằng cách sắp xếp đầu vào theo các ký tự duy nhất, sau đó kiểm tra xem số lượng ký tự duy nhất có cùng độ dài với đầu vào hay không. Có thể có một cách để làm cho nó hoạt động với bất kỳ 3 số nguyên nào, nhưng tôi nghĩ rằng ít nhất đây là một nỗ lực tốt đối với tôi!
Mèo con Hugger

2
Thử thách xác định Bạn sẽ được cung cấp 3 số nguyên làm đầu vào. mà dường như làm cho câu trả lời của bạn không hợp lệ.
Jonathan Frech

@JonathanFrech Đã sửa nó ngay! Đây là lần đầu tiên tôi làm điều này vì vậy, tôi không phải là người giỏi nhất.
Mèo con Hugger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.