11
逆XORを計算する
させるfビットフィールド(マップする関数である{0 1}大きさの)のn+1大きさのビットフィールドにn適用することによりXORにi目とi+1目のビットと新しいビットフィールドに結果を書き込むこと。 例: f("0101") = "111" 非公式の計算: 0 XOR 1 = 1 1 XOR 0 = 1 0 XOR 1 = 1 ましょうf_inverseの逆関数になりfます。逆行列は一意ではないため、f_inverse1つの有効なソリューションを返します。 入力:文字列としてのビットフィールド(つまり"0101111101011")および指定された自然数k 出力:文字列としてのビットフィールド。入力ビットフィールドに時間をf_inverse適用すると、文字列に結果が含まれますk。(すなわちf_inverse(f_inverse(f_inverse(input)))) 受賞基準:最少キャラクター ボーナス: -25文字f_inverseが再帰的/反復的に適用されない場合、代わりに出力文字列が直接計算されます テストスクリプト: a = "011001" k = 3 def f(a): k = len(a) r = "" for i in xrange(k-1): r += str(int(a[i]) …
13
code-golf