จำนวนเต็มทั้งสามนั้นแตกต่างกันหรือไม่?


14

คุณจะได้รับ 3 จำนวนเต็มเป็นอินพุต อินพุตอาจแตกต่างกันหรือไม่ก็ได้ คุณต้องเอาท์พุท 1 หากอินพุตทั้งสามนั้นแตกต่างกันและเป็น 0 ถ้าอินพุตใดซ้ำหลายครั้ง

นี่คือดังนั้นทำให้รหัสของคุณสั้นที่สุด!


1
ยินดีต้อนรับสู่ PPCG ความท้าทายแรกที่ดี เราค่อนข้างเข้มงวดเกี่ยวกับเกณฑ์การชนะอย่างมีวัตถุประสงค์บนเว็บไซต์นี้ code-golfดูเหมือนจะเป็นตัวเลือกที่ชัดเจนที่นี่ดังนั้นฉันจะเพิ่มที่โพสต์ของคุณ ช่วยแก้ให้ด้วยนะถ้าฉันผิด.
Adám

1
กรณีทดสอบบางอย่างน่าจะดี
Adám

19
ใครก็ตามที่กำลัง downvoting คำตอบทั้งหมดอย่างน้อยควรอธิบายว่าทำไม ...
Arnauld

1
@ Adam ฉันคิดว่าชื่อที่แม่นยำยิ่งขึ้นจะเป็นทั้งสามจำนวนเต็มชัดเจน?
Arnauld

5
การลงคะแนนดูปองต์ของฉันเป็นค้อน แต่อาจเป็นไปได้ว่า " กำหนดว่าตัวเลขทศนิยมทั้งหมดเป็นค่าเฉพาะ "แตกต่างกันเล็กน้อย แต่คำตอบส่วนใหญ่ยังคงสามารถย้ายได้
Kevin Cruijssen

คำตอบ:


10

Python 3 , 23 21 20 ไบต์

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

ลองออนไลน์!


OP ขอ 1 กับ 0 ดังนั้นบางทีคุณอาจต้องการหนึ่งไบต์เพิ่มเติมได้ที่:lambda*a:len({*a})//3
TSH

@tsh ใน Python 1 == Trueฉันคิดว่ามีเมตาโพสต์เกี่ยวกับมันอยู่ที่ไหนสักแห่ง
Stephen

1
@tsh - เมตาที่เกี่ยวข้อง "ถ้ามันแฮกเหมือนตัวเลขมันเป็นตัวเลข" - ใน Python: False * Trueis 0; False + Trueคือ1; ฯลฯ ...
Jonathan Allan

จากเมตาที่เกี่ยวข้อง: "สิ่งนี้ไม่สามารถใช้กับความท้าทายที่ต้องการเอาท์พุทสตริงที่แน่นอน" ดังนั้นฉันจึงไม่แน่ใจว่าสิ่งที่ใช้จริงที่นี่
GB


8

R , 13 ไบต์

วิธีแก้ปัญหาที่แตกต่างสำหรับ @Kirill โดยใช้ mad()เพื่อวัตถุประสงค์ที่ไม่ได้ตั้งใจ!

mad(scan())>0

ลองออนไลน์!


1
อินพุตไม่ได้ถูกระบุเลยดังนั้น IMO จึงยอมรับ 3 ค่าเนื่องจากอินพุตหมายความว่าเราสามารถยอมรับเวกเตอร์ได้
digEmAll

2
R เกือบจะแข่งขันกับภาษากอล์ฟ! : D
digEmAll

1
ฉันเชื่อว่า Gauss ได้ประดิษฐ์madสิ่งนี้ขึ้นมาเพื่อจุดประสงค์นี้
ngm

5

R , 24 22 20 ไบต์

all(table(scan())<2)

ลองออนไลน์!

คืนค่าบูลีน แต่เมื่อผู้คนได้พูดถึงคำตอบของ Pythonแล้วก็ควรจะเป็นเช่นนั้น

ขอบคุณ digEmAll สำหรับการบันทึก 2 ไบต์



11 ไบต์ - หากคุณได้รับอนุญาตให้มีหมายเลขใด ๆ > 0 เป็นความจริง มิฉะนั้นผนวก>0สำหรับTRUE/FALSEเอาต์พุตใน 13 ไบต์
J.Doe

1
ว้าวไม่รู้ด้วยซ้ำเกี่ยวกับฟังก์ชั่นนี้ ฉันขอแนะนำให้คุณโพสต์แยกต่างหาก (แก้ไขและฟื้นฟูคำตอบที่ถูกลบของคุณ) แต่ฉันคิดว่าคุณต้องติดกับ 13 ไบต์ - ในขณะที่ T / F ทำหน้าที่เหมือน 1/0, 1.48 ไม่ได้
Kirill L.

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

@Annauld ใช่ฉันมีเช่นกัน แต่เนื่องจากสเป็คไม่อนุญาต - จะได้รับการอัปเดตหากข้อมูลจำเพาะมีการเปลี่ยนแปลง
ขนปุย

โอ้เดี๋ยวก่อน ฉันสามารถตรึงไว้ที่&122 ไบต์
ขนปุย

4

ทับทิมขนาด 16 ไบต์

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

ลองออนไลน์!


-3 ไบต์ด้วยuniq!
benj2240

บูลีนและจำนวนเต็มเป็นประเภทที่แตกต่างกันในทับทิม
GB

อ่าคุณพูดถูก ฉันไม่ได้อ่านความท้าทายอย่างใกล้ชิดและสันนิษฐานเอาท์พุทความจริง / เท็จจะพอเพียง
benj2240

4

Cubix , 55 25 ไบต์

-29 ขอบคุณ Jo King

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

ลองออนไลน์!

มันเป็นไปได้ที่จะตีกอล์ฟออกไปไม่กี่ไบต์



ขอบคุณมาก. ฉันจัดการเพื่อลบ 1 ไบต์เพิ่มเติมถึงที่ 25 bytes ทั้งหมด
ลุค

ฉันคิดว่าคุณอาจหายไป@แทนที่.ในจุดที่ 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 ไบต์
Mr. Xcoder

1
@ Mr.Xcoder ฉันไม่แน่ใจว่าเป็นจริงในปัจจุบัน - คำถามที่ถามถึงผลลัพธ์ 1 และ 0 - 4ตัวอย่างเช่นไม่ใช่1และ0ไม่ทำหน้าที่เหมือน1หรือ0(เหมือนTrueและFalseทำใน Python) คำถามน่าจะถาม Truthy / Falsey แต่ในปัจจุบันก็ไม่ได้
Jonathan Allan

3

Mathematica ขนาด 13 ไบต์

Boole[E!=##]&

ฟังก์ชั่นบริสุทธิ์ ใช้จำนวนเต็มสามจำนวนเป็นอินพุตและส่งคืน0หรือ1เป็นเอาต์พุต ฉันรู้ว่าสิ่งนี้ค่อนข้างคล้ายกับคำตอบของ David G. Storkแต่มันเป็นการหาประโยชน์SlotSequenceเพื่อกำจัดไบต์ (เทียบกับBoole@*Unequal)


3

brainfuck , 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 bytes

-2 bytes thanks @AdmBorkBork

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

Test script:

$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

Explanation:

    $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

great! and thanks
mazzy





1

Attache, 10 bytes

`==#Unique

Try it online!

This is a fork of the operator `== and Unique, equivalent to:

{ _ == Unique[_] }

Alternatives

{#_=#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

thanks to @Olivier Grégoire

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

Previous attempt:

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

1
Why not count it as 43 bytes
ASCII-only

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

Also, the first code (100 bytes) doesn't compile and uses == which is not applicable on String without issues which you encounter here (after compilation fix), and in the second code, Set.of method will throw IllegalArgumentException if any duplicate is provided. I'm tempted to -1 for not testing at all.
Olivier Grégoire

@olivier Apologies-it was late and I mixed up a few different ideas in my head. As for Set.of, I was just experimenting with Java 9 kinks and don’t have Java 9 myself. I should’ve read the documentation more carefully, sorry about that. I’ll edit once I get on my computer.
Quintec


1

T-SQL, 39 bytes

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

Input is taken as separate columns a, b, c from a pre-existing table s, per our IO standards.

Tried a variation using COUNT DISTINCT from input taken as separate rows, but that was a couple bytes longer.


1

Pyth, 3 bytes

s{I

Takes input as a list.
Try it here

Explanation

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

If we're allowed to treat True and False as 1 and 0 (which they are under the hood in Pyth), we can drop the s to get down to 2 bytes.





1

q 14 bytes

{x~distinct x}

Technically this solution will return '1b' or '0b', which is the way a boolean value is distinguished from a numeric type, though it retains all arithmetic functionality, and so is in essence a 1 or 0:

q)1b +35
36

To return 1 or 0 non-boolean you have the below, which takes the byte count to 21

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

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


1

Jelly, 5 6 bytes

ɠḲQL=3

Try it online!

From 5 to 6 bytes because this is my first time and I messed up (whoops) fixed it now

ɠḲ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
Hello and welcome to PPCG. Does your code also work for 3 integers, or is it only functional for three digits?
Jonathan Frech

@Jonathan Frech Sadly, it only works for three 1 Digit numbers, it does this by sorting the input by unique characters, then testing if the amount of unique characters is the same length as the input. Maybe there is a way to get it to work with any 3 integers, but I think this is a good attempt for me at least!
Kitten Hugger

2
The challenge specifies You will be given 3 integers as input. which seems to render your answer invalid.
Jonathan Frech

@JonathanFrech Fixed it now! Was my first time doing this sort of thing so, I'm not the greatest at it.
Kitten Hugger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.