3つの整数はすべて区別されますか?


14

入力として3つの整数が与えられます。入力は互いに異なっていてもいなくてもかまいません。3つの入力すべてが互いに異なる場合は1を出力し、入力が複数回繰り返される場合は0を出力する必要があります。

これはなので、コードをできるだけ短くしてください!


1
PPCGへようこそ。素敵な最初の挑戦。このサイトでの客観的な勝利基準については非常に厳しいです。ここではcode-golfが当然の選択であると思われるので、あなたの投稿にそれを追加します。間違っている場合は修正してください。
アダム

1
いくつかのテストケースがいいでしょう。
アダム

19
誰が、少なくとも理由を説明する必要があります...すべての答えをdownvotingている
アルノー

1
@Adámより正確なタイトルは3つの整数がすべて異なるのでしょうか?
アーナルド

5
私だまされやすい人、投票はハンマーですが、の可能性のある重複した「すべての桁が一意であるかどうかを判断し、」若干異なるが、ほとんどの回答はまだ移植することができます。
ケビンクルイッセン

回答:


10

Pythonの323の 21 20バイト

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

オンラインでお試しください!


OPは1対0を要求したので、おそらくもう1バイト必要です。lambda*a:len({*a})//3
tsh

Pythonで@tsh 1 == True、私はそれについてのメタポストがどこかにあると思う
スティーブン・

1
@tsh- 関連するメタ「数字のように鳴るなら数字だ」-Python では:False * Trueis 0; False + Trueです1。等...
ジョナサン・アラン

関連するメタから:「これは正確な文字列出力が必要なチャレンジには適用されない」ので、ここで実際に何が当てはまるかわかりません。
GB



5

R24 22 20バイト

all(table(scan())<2)

オンラインでお試しください!

ブール値を返しますが、人々がすでにPythonの回答で議論しているように、これは問題ないはずです。

2バイトを節約してくれたdigEmAllに感謝します。



11バイト -真理値として0より大きい数値を許可されている場合。それ以外の場合は、13バイト>0TRUE/FALSE出力に追加します。
J.Doe

1
うわー、この機能についても知りませんでした。個別に投稿することをお勧めします(削除した回答を編集して復活させる)が、13バイトに固執する必要があると思います-T / Fは実際には1/0のように機能しますが、1.48はそうではありません。
キリル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

@Arnauld、ええ、私もそうでしたが、現状では仕様はそれを許可しません-仕様が変更された場合は更新されます。
シャギー

えっ、ちょっと待って。私は&122バイトだけタックできます。
シャギー


4

Cubix55 25バイト

-29ジョー・キングに感謝

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

オンラインでお試しください!

かなりのバイトをゴルフで飛ばすことができるはずです。



どうもありがとう。合計25バイトに到達するために、さらに1バイトを削り取ることができました
ルーク

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 I @実際には現在有効だとよく分からない- -質問は、出力1と0を要求4、たとえば、どちらもありません、10、また同様に作用していない10(ようTrueFalsePythonで行います)。質問はおそらくTruthy / Falseyを尋ねるべきですが、現時点ではそうではありません。
ジョナサンアラン

3

Mathematica、13バイト

Boole[E!=##]&

純粋な機能。入力として3つの整数を受け取り、出力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バイト

-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

すごい!そして、感謝
mazzy





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バイト

@OlivierGrégoireに感謝

(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ず、ここで発生する問題なしで適用されない(コンパイル修正後)、2番目のコードでは、重複が提供される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

入力は、別々の列として解釈され、B、C、既存のテーブルから私たちのIO規格ごと

COUNT DISTINCTfrom from inputを別々の行として使用してバリエーションを試しましたが、それは数バイト長くなりました。


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

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


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、それとも3桁でしか機能しませんか?
ジョナサンフレッチ

@Jonathan Frech悲しいことに、これは3桁の1桁の数字に対してのみ機能します。一意の文字で入力をソートし、一意の文字の量が入力と同じ長さであるかどうかをテストします。3つの整数で動作させる方法があるかもしれませんが、少なくとも私にとってこれは良い試みだと思います!
子猫ハガー

2
チャレンジは、入力として3つの整数が与えられることを指定します。回答が無効になるようです。
ジョナサンフレッチ

@JonathanFrech今すぐ修正!この種のことをするのは初めてだったので、私はそれで最高ではありません。
子猫ハガー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.