前書き
3要素関数を、それ自体に設定された3要素からの関数として定義してみましょうS = {0,1,2}
:のS
別の要素の各要素に関連付けS
ます。三項関数の一例f
は
f(0) = 0; f(1) = 2; f(2) = 0
正確に27の異なる三項関数があり、それらを0から26の整数で表します:関数f
はとしてエンコードされf(0) + 3*f(1) + 9*f(2)
ます。上記のサンプル関数は、数値6としてエンコードされます。
2つの3項関数f
をg
順番に適用できます。f(g(k)) == g(f(k))
すべてのk
in が成立する場合S
、関数は通勤します。あなたの仕事は、これが事実かどうかを確認することです。
入力
入力は、0〜26の範囲の2つの整数です。これらは2つの3項関数f
およびを表しg
ます。入力は、10進数、2進数、または単項(1
sの文字列)形式で行う必要があります。
出力
あなたの出力はtruthy値の場合f
とg
そうでない場合は通勤、およびfalsey値。入力が順序付けられていると想定することはできません。
例
入力5と16を検討します。これらは3次関数をエンコードします
f(0) = 2; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 2; g(2) = 1
我々は持っているf(g(1)) == f(2) == 0
とg(f(1)) == g(1) == 2
、そうf
とg
通勤していないと、正しい出力がfalseyです。
一方、入力3と10は3項関数をエンコードします
f(0) = 0; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 0; g(2) = 1
そして、それはf(g(k)) == g(f(k))
すべてk
で保持することが確認できますS
。正しい出力は真実です。
以下は、すべての可能な入力の27×27の表で+
、真実の出力と偽の出力をマークしてい-
ます。
+ - - + - - + - - + - - + - - + - - + - - + - - + - -
- + - - - - - - - - - - + - - - - - - - - + - - - - -
- - + - - - - - - - - - - - - - - - - - - + - - + - -
+ - - + - - - - - - + - - + - - - - + - - + - - - - -
- - - - + - - - - - - - - + - - - - - - - + - - - - -
- - - - - + - - - - - - - + - - - - - - - + - - - - -
+ - - - - - + - - - - - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
- - - - - - - - + - - - - - - - - - + - - + - - - - -
+ - - - - - - - - + - - - - - - - - - - - + - - - - -
- - - + - - - - - - + - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
+ + - - - - - - - - - - + + - - - - - - - + + - - - -
- - - + + + - - - - - - + + + - - - - - - + + + - - -
- - - - - - - - - - - - - + + - - - - - - + - - - - -
+ - - - - - - - - - - - - - - + - - - - - + - - - - -
- - - - - - - - - - - - - - - - + - - - - + - + - - -
- - - - - - - - - - - - - - - - - + - - - + + - - - -
+ - - + - - - - + - - - - - - - - - + - - + - - - - +
- - - - - - - - - - - - - - - - - - - + - + - - - - +
- - - - - - - - - - - - - - - - - - - - + + - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - + + - - - + - - - + + - - - +
- - - - - - - - - - - - - + - - + - - - - + - + + - +
+ - + - - - - - - - - - - - - - - - - - - + - + + - +
- - - - - - - - - - - - - - - - - - - - - + - - - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + +
ルールとスコアリング
完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。