入力として3つの整数が与えられます。入力は互いに異なっていてもいなくてもかまいません。3つの入力すべてが互いに異なる場合は1を出力し、入力が複数回繰り返される場合は0を出力する必要があります。
これはcode-golfなので、コードをできるだけ短くしてください!
入力として3つの整数が与えられます。入力は互いに異なっていてもいなくてもかまいません。3つの入力すべてが互いに異なる場合は1を出力し、入力が複数回繰り返される場合は0を出力する必要があります。
これはcode-golfなので、コードをできるだけ短くしてください!
回答:
ブール値を出力できる場合、最後の2バイトを削除できます。
a=>new Set(a).size>2&1
同じバイトカウントの場合、これは任意のサイズの配列で機能しますが、入力にaが含まれず0
、出力がブール値であると想定します。
a=>!a[new Set(a).size]
a=>new Set(a).size>2
&1
22バイトだけタックできます。
ÙQ
オンラインそれを試してみたり、いくつかのより多くのケースを検証します。
説明:
Ù # Uniquify the (implicit) input
Q # Check if it's still equal to the (implicit) input
4
、たとえば、どちらもありません、1
も0
、また同様に作用していない1
か0
(ようTrue
やFalse
Pythonで行います)。質問はおそらくTruthy / Falseyを尋ねるべきですが、現時点ではそうではありません。
Boole[E!=##]&
純粋な機能。入力として3つの整数を受け取り、出力0
または1
出力として使用します。これはDavid G. Storkの回答にかなり似ていることを知っていますがSlotSequence
、(と比較してBoole@*Unequal
)バイトを削るのに利用します。
,>,>,[-<-<->>]>>+++++++[>+++++++<-]+<<<<[>]>>[<<<[-<->]<[>]>>->[>.<<<->>-]<+]<+[>>>[>]<-.>]
,>,>, '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バイト、@ 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
+(($args|group).count-eq3)
匿名の暗黙の接頭辞関数。引数としてリストを取ります。
∪≡⊢
∪
引数から一意の要素のセットを行います
≡
一致
⊢
変更されていない引数?
`==#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バイト)
@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
(a,b,c)->a!=b&b!=c&a!=c?1:0
。
==
されString
ず、ここで発生する問題なしで適用されない(コンパイル修正後)、2番目のコードでは、重複が提供されるSet.of
とメソッドがスローIllegalArgumentException
されます。テストをまったく行わないため、-1になります。
SELECT IIF(a=b OR b=c OR c=a,0,1)FROM s
入力は、別々の列として解釈され、B、C、既存のテーブルからの、私たちのIO規格ごと。
COUNT DISTINCT
from from inputを別々の行として使用してバリエーションを試しましたが、それは数バイト長くなりました。
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バイトに減らすためにをドロップできます。
d?∧1|0
d?
d eduplcatesは、まだinput(?)と等しい場合にテストを入力します
∧1
trueの場合は1を返します
|0
それ以外の場合は0を返します
f=a=>a.map((m,i)=>a.map((n,j)=>m==n&i!=j).every(z=>!z)).every(y=>y)
ɠḲ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
3 integers
、それとも3桁でしか機能しませんか?