前書き
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))すべてのkin が成立する場合S、関数は通勤します。あなたの仕事は、これが事実かどうかを確認することです。
入力
入力は、0〜26の範囲の2つの整数です。これらは2つの3項関数fおよびを表しgます。入力は、10進数、2進数、または単項(1sの文字列)形式で行う必要があります。
出力
あなたの出力は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の表で+、真実の出力と偽の出力をマークしてい-ます。
+ - - + - - + - - + - - + - - + - - + - - + - - + - -
- + - - - - - - - - - - + - - - - - - - - + - - - - -
- - + - - - - - - - - - - - - - - - - - - + - - + - -
+ - - + - - - - - - + - - + - - - - + - - + - - - - -
- - - - + - - - - - - - - + - - - - - - - + - - - - -
- - - - - + - - - - - - - + - - - - - - - + - - - - -
+ - - - - - + - - - - - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
- - - - - - - - + - - - - - - - - - + - - + - - - - -
+ - - - - - - - - + - - - - - - - - - - - + - - - - -
- - - + - - - - - - + - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
+ + - - - - - - - - - - + + - - - - - - - + + - - - -
- - - + + + - - - - - - + + + - - - - - - + + + - - -
- - - - - - - - - - - - - + + - - - - - - + - - - - -
+ - - - - - - - - - - - - - - + - - - - - + - - - - -
- - - - - - - - - - - - - - - - + - - - - + - + - - -
- - - - - - - - - - - - - - - - - + - - - + + - - - -
+ - - + - - - - + - - - - - - - - - + - - + - - - - +
- - - - - - - - - - - - - - - - - - - + - + - - - - +
- - - - - - - - - - - - - - - - - - - - + + - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - + + - - - + - - - + + - - - +
- - - - - - - - - - - - - + - - + - - - - + - + + - +
+ - + - - - - - - - - - - - - - - - - - - + - + + - +
- - - - - - - - - - - - - - - - - - - - - + - - - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + +
ルールとスコアリング
完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。