[[Problem 0750]]

-a(X):XrX
b(X,Y,Z):Zb(sX,Y-1,sra(XlX))Z
a(a(a(a(b(l,5,)s))l))
よくわからなかったです -- Ktya &new{2011-09-18 (日) 23:32:58};
-こう考えろとか助言もらえると嬉しいです。
35B

f(X):rd(XrrX)ls
g(X,Y):f(X)g(sX,Y-1)f(X)
d(X):XX
d(d(d(d(sg(,4)r))l)) -- SA9I &new{2011-09-18 (日) 23:41:17};
-〜想定解〜
g(G):GrG
f(F):g(F)sg(F)
x:f(f(f()))
g(g(g(g(slxxxls))l))
縮んでも全くおかしくないです。
ちょっと長めでbyte数分かれそうな問題を・・・という魂胆の問題でした。 -- snuke &new{2011-09-18 (日) 23:46:35};
-最初に作ったきり更新できなかった31Bコード:
w(X):XXXXr
a(X,Y,T):Ya(sX,lw(XllX)s,T-1)Y
w(w(sa(,,5)r))
材料を作ってそれを増やすだけの単純なコードです. -- mas &new{2011-09-18 (日) 23:52:00};
-a(X,Z,Y):Za(sXs,srXXl,Y-1)Z
b(X):XXXX
b(b(a(rr,,5)sr)l)
そんなパスありですかー -- zephoria &new{2011-09-18 (日) 23:53:25};
-他に考えたこと:
w(X):XrXlslXrX
と定義して,「sw(w(s))s」とすると,短いバイト数で良さげな材料を作れるのですが,コンテスト時間内には上手く短縮に結び付けられませんでした. -- mas &new{2011-09-18 (日) 23:54:31};
-f(X,Y):q(srXXl,f(sXs,Y-1))
q(X,Y):XYX
q(q(q(q(f(rr,4)sr,),)r,),)
分かれるものですね. -- shinike &new{2011-09-19 (月) 00:07:33};
-> SA9Iさん
経路選択は標準的だと思います.
実はそのコードは,1テクニックで3B縮みます:
g(X,P,Y):Pg(sX,rd(XrrX)ls,Y-1)P
d(X):XX
d(d(d(d(sg(,,5)r))l))

f(X)と置いたものを,他変数を使って文字で置いていることを除いてほぼ同様です.この「他変数を使い文字で置く」方法は(再帰でも)重要なので覚えておくといいです.(続く) -- mas &new{2011-09-19 (月) 00:56:33};
-> SA9Iさん
数値引数が4から5に代わっている理由とかも理解しておくといいかも.他変数で文字で置くと,出来あがるタイミングが1ずれるんですよね.

なお,こうやって書き変えた32Bコードは僕が下に投稿した31Bコードとほぼ同様です.2倍関数の代わりに4倍関数を使い(この書き換えではバイト数不変),4倍関数に方向転換を織り交ぜて短縮しています. -- mas &new{2011-09-19 (月) 01:00:25};
-e(A):AA
f(A):e(e(e(e(se(AslAl)e(e(ss))l))l))f(srslA)
f()
コンテスト中の30B解です。eを4回繰り返しにすれば29Bになります。 -- nadsuki &new{2011-09-19 (月) 06:22:45};
-!この経路選択は面白いですね
なるほど・・・ -- snuke &new{2011-09-19 (月) 09:15:28};

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS