[[雑記]]

*_misakiの雑記 [#qc380910]

**2020/5 [#l340077b]
- snukeさんの新しいパズルやってみたけど難しい.
- [[Problem 0917]] 30B→29B  一から書き直したら以前と同じ関数になった.向きで1B損してたらしい.
- [[0414>Problem 0414]]と2032は同じコードで解いたけど0414だけ単独…?
- なるほどそもそも2032の19Bが違ったのですね…!
- Bestが同じBytes数で並んでいても実は全然違う解というパターン,結構あるのかも.
- [[Problem 1391]] 31B→27B  ヒントの「割と綺麗な経路」を見つけてもそれを「綺麗なコード」で書くのに結構手こずった.
- 1300番台&size(21){&color(#00FF00){緑一色!!!!};};
- [[Problem 2060]]  17B    昔作ったらしい問題をなんとなく出してみた.想定はあれを使った17Bですが,あまり考えていないので想定外の解もありそう.(追)16Bに縮められてる!!
- [[Problem 2060]] 17B→15B  直接書いて15Bになってしまった…w ちなみに元の想定17Bは多重再帰でした.この案はまた別の問題で使おう.
- [[Problem 1023]] 21B→20B  Bestは方針が違いそう.
- [[Problem 0187]] 19B→18B  [[2020>Problem 2020]]的に書けないかと思ったけど19Bにしかならず,直接書くと縮んだ.
- [[Problem 1357]] 22B→21B  結構考えてようやく1B短縮.むずい


**2020/4 [#u2400fa9]
- [[Problem 0845]] 26B→25B  置換とn倍を(変数を増やして)組み合わせる.
- [[Problem 0838]] 27B→26B  棒をたてていたところを四角にして,補助関数を変更.
- [[Problem 0527]] 52B→51B  小パーツが実は数値関数を使いまわせて-1B.
- [[Problem 1315]] 31B→27B  31Bは4倍1倍系で直接.pastaさんの雑記のヒントを曲解して[[1928>Problem 1928]](これも4倍1倍系で書いた)と同じ方針だと思っていたけど(『経路は』の部分を見落としてた),意外にもFibonacci絡みの数値関数でBest…!
- [[Problem 0313]] 26B→24B  見落とし!
- [[Problem 0190]] 22B→21B  関数を微調整.
- [[Problem 2059]]  15B    ありそうで多分なかった問題.今のところ16Bは7通りくらい,15Bは1通り見つけた.Less than 15B????
- wwvwwさんの15Bと同じか気になる…(数値を使った再帰です) (追)同じだったようですね.さすがに14B以下はなさそうな気がする.
- _misaki問題は大抵想定コードありきなので初級問題になりにくいのかも.
- (考えてみればデザインから作った2012や副産物の1982以外,全部細かい短縮絡み…)
- [[Problem 0219]] 56B→54B  経路が謎.下の部分への移動がネックになって縮まない.
- [[Problem 1770]] 23B→21B  書き直してみたら意外にもあっさり縮んだ.
- [[Problem 1235]] 38B→36B  冗談みたいな方針で縮んだけど1B届かず><~
2001や2048みたいに再帰を数値再帰に変換すると~
 [50B]
 y:ssrsl
 a(X):rb(X-1)yla(X-1)ya(X-1)lyb(X-1)r
 b(X):la(X-1)yrb(X-1)yb(X-1)rya(X-1)l
 a(5)
これを短縮して36B.多分Bestの方針とは違いそう.
- (1180もこんな感じで書いて1B届かなかった思い出)
- [[0075>Problem 0075]]とこれはもとの書き方に無駄があるのかな?変数変換とか


**2020/2&#12316;3 [#h8081552]
- [[Problem 2055]]  17B    経路のヒント→&color(white){XXXr};.
- Problem 2056 を投稿したのに想定解が通らなくて困惑.100万steps以下のはずなのに…
- 計算し直してみたら14京steps以上かかってた.がっでむ.
- 消しちゃったけど面白いから残しておけばよかったかも.
- [[Problem 2058]]  11B    Targetの数を1/4に減らして再投稿.&color(white){ssXss.2055の発想};
- [[Problem 0013]] 21B→20B  21Bコードを弄って再帰に.
- これで[[Problem Set 0 シリーズ]]は残すところ[[0011>Problem 0011]]のみ.なんとか今年中には…
- [[Problem 0011]] 22B→20B  できてしまった.wwvwwさんの「全然別の経路」というのをヒントに色々考えていたら良さげな経路を思いついて,21Bをしばらくいじると20Bに.
- この方針以前も考えたけどその時は壁でずれるのに対処できず挫折した思ひ出.
- これで[[0000~0099]]は残すところ[[0075>Problem 0075]]と[[0091>Problem 0091]]のみ.なんとか今年中には…
- [[Problem 1541]] 25B→24B  Nine lemmaなるものを最近知ってなんとなく見返してたら縮みそうな気がしたので粘る.大きめの関数を作って,実行行をa(a())に.

**2019/10&#12316;12 [#m0928ca5]
- [[Problem 2053]] 25B    大昔に作った特に変な作意のない普通の問題で,想定は25Bです.確か1936, 1940を更新したときの関数.
- 2052, 自分は2030の想定解を使い回しました.
- [[Problem 0013]] 23B→21B  経路を吟味して3倍で.
- [[Problem 0591]] 謎.初期位置が天元なら22Bで書けるのに...[[0589>Problem 0589]]の方法だと23Bになる
- [[Problem 0591]] 23B→22B  初期位置が天元なら再帰で21B→再帰の1段階ごとに天元ににじり寄っていくことで解決.ちなみにこの方法では[[0589>Problem 0589]]は解けず.
- [[0589>Problem 0589]]は関数を2変数にして直接,[[0591>Problem 0591]] は再帰,と全く違う方針でBest化したのですが,雑記を見るにKtyaさんはこの2問を多分同じ方針(直接?)で解かれたようで謎.
- [[Problem 2054]] 20B    てきとーに作った問題.2通りの20B(1つはとある)で解けたけど,まだ縮む?
- [[Problem 0999]] 23B→21B  [[育たない再帰]].
- [[Problem 0230]] 35B→30B  ヒントの方針で.
- [[Problem 0227]] 31B→30B  惜しいとこまでいってたのに.
- 0226&#12316;0231お花シリーズ制覇!
- [[Problem 0296]] 22B→21B  コードを眺めてたら見落とし発見.
- [[Problem 0325]] 22B→21B  見落とし.
- [[Problem 0477]] 45B→40B  時間をかければまあできる.
- [[Problem 0771]]  76B→75B  補助関数がカオスだったので書き直してみた.
- [[Problem 2053]]  直接でも25Bになった.
- [[Problem 1607]]  24B→16B  規則は合っていたのに…毎回中心に戻っていたせいで全然縮まなかった.
- [[Problem 0578]]  26B→24B  試し忘れ.


**2019/6&#12316;9 [#e3166eff]
- [[Problem 0424]] 34B→33B  数値をやめて5倍系で直接. 
- [[Problem 0422]] 28B→26B  かっこいい方針を思いついて縮んだけどBestが短すぎ. 
- [[Problem 0857]] 21B→20B  1519のテクにさらに一工夫.
- [[Problem 0464]] 29B→19B   フラクタル難しい.似た問題での経験でBest化.&color(white){1273とか};
- [[Problem 0946]] 18B    !!!! 人間に解ける問題だった.と言っても完全に理詰めで解いたわけではなく,rslssパーツでなんとなくなぞると同じ形が何度も出てきて,それを含む形が18Bで実現できるということはこういう書き方かなーと試して解けた感じ. &color(white){実は2029とかなり似てる.};
- [[Problem 0963]] 23B    mapを見て思いついた規則を試したら当たってた.
- [[Problem 1087]] 21B    難しそうなイメージがあったけど至って素直な問題.邪魔な灰マス2個を避ける.
- [[Problem 2052]] 16B    多分Bestのはず.
- ストック問題コンテスト,超面白そうですね!


自作問での単独Best/Solveが多くてアレなのでヒントを置いておきます.
- [[Problem 2031]] &color(white){謎問.a(X,Y):XXYXYYa(?,?) a(?,?)};
- [[Problem 2033]] 2行で書くと &color(white){[23B] a(X,Y,Z):a(sXs,XXrXX,Z-1)YYrYY a(r,,6) };となって,あのテクが使えます.
- [[Problem 2048]] [[0858>Problem 0858]]ができればsolveは簡単( &color(white){右側の成長をさらに1段階遅らせるだけ};).想定Bestは[[2001>Problem 2001]]のあれを a(X):rrssrsrXrsslXlsrss という関数でやります.
- [[Problem 1981]] [17B] &color(white){a(X,Y):XXlYssssla(sY,X) a(,)}; を短縮.普通にやると16Bになるところなので,わざわざ17Bのコードを作って2B縮めるというのはやや盲点かも.
- [[Problem 2047]] 規則に従って &color(white){a(X,Y):?a(YX,X)}; で書いた17Bが普通に短縮できます.
- [[Problem 2029]] &color(white){sssslssssrssllsslss};.

16B以下非Best:
- 12B: [[0121>Problem 0121]]
- 15B: [[1479>Problem 1479]], [[1621>Problem 1621]], [[2002>Problem 2002]]
- 16B: [[0279>Problem 0279]], [[0603>Problem 0603]], [[1151>Problem 1151]], %%[[1607>Problem 1607]],%% [[1805>Problem 1805]]
- 0121が謎すぎる.
- まともな1関数solverを作れたらいくつかはBest化できるかな...


**2019/1&#12316;3 [#u2530482]
- [[Problem 1404]] 22B→21B  1変数関数.
- [[Problem 2051]] 44B    なんとか再帰に乗る形を見つけてsolve.綺麗に書けない.
- [[Problem 2051]] 44B→35B  やっぱりもっと短いらしい.直接書く方針を見つけて少し縮んだ.→33B 命令を含む3変数関数で2行.Bestは発想を変えないと届かなさそう. 
- [[Problem 0637]] 22B→21B  「命令としての働きのない変数を使うとあるテク」で22Bで書いてからその変数に命令としての働きを持たせて向き合わせで得した.
- [[Problem 1900]] 19B→18B  上に同じ.これは19Bにした時点で気づくべきだった...
- [[Problem 0194]] 20B→19B  20Bが確かに無駄っぽかったので納得.
- [[Problem 0153]] 95B→81B  経路はそのまま短縮技術の差で14B縮んだ.
- [[Problem 0680]] 33B→29B  できた.というかなぜ33Bにした時にできなかったのか.
- [[Problem 0683]] 44B→41B  第2象限の斜め移動が綺麗に書けるよう関数を工夫.あと,a(X):qa(X-1)rみたいに後ろに向きをつけたい時,2B払ってa(X,Y):qa(X-1,)Yr とする方が得な場合があるという,0828で得た知見.
- [[Problem 0891]] 22B→19B  22Bは中心からの渦で書いてました.なるほどこういうパターン認識かー.2変数再帰かと思いきやアレ.
- [[Problem 1096]] 28B→26B  ふと思いついた関数を試したらBest!
- [[Problem 1410]] 20B→17B  20Bはなぜか再帰.
- [[Problem 0311]] 22B→20B  直接.
- [[Problem 0156]] 43B→30B  snukeさんのヒント通り渦で書いてみた.その発想はなかった.

**2018/12 [#y2a3c4ae]
- [[Problem 1733]] 42B→40B  多重再帰で少し縮む.1つのコードの中で[[相互再帰>複数の再帰関数]]と多重再帰の両方を使うという,なかなか好きなコード.→39B 素直に(?)2行で書いて39Bに.
- [[Problem 1733]] 39B→38B  成長速度をどう調整するか.結局7変数にして,最近になってよく使う短縮のパターン(6回目)でBest化.
- [[Problem 1731]] 18B→16B  数値だろうと思っていろいろ試して発見.
- [[Problem 1718]] 48B→39B  「数値を1つにする」「互いに素」などをヒントに落ち着いて考えたらできた.なるほど&#12316;&#12316;&#12316;&#12316; これ数値1つで書けるとは...!!
- [[Problem 0736]] 32B→31B  r/lをいかに少なく書くか.ヒントの「逆走」の意味が解けてから分かった.
- &size(21){&color(#66cccc){1600Bests!!!!};};
- [[Problem 0270]] 32B→29B  カウントの仕方を変えると32B解の無駄が解決.→28B rsrrsrがいかにも冗長なので弄る.あと1B.縮むポイントっぽい箇所はあるけどうまくいかない.
- [[Problem 0270]] 28B→27B  コードばかり見ていてなかなか気づかなかった.&color(white){逆に回ればいいのか...};
- [[Problem 1340]] 30B→29B  masさんのコードにやや似てる.&color(white){白文字でこっそりコメント足すの楽しい.};
- [[Problem 1714]] 18B→17B  solverでわけの分からない解がでてきた.18Bは人間解.
- [[Problem 2037]] 22B→19B  探せばあるものですね.基本パーツがT字でなくS字.小さなS字を描く8B再帰の要領で作ります.[[2029>Problem 2029]]っぽい.
- [[Problem 0738]] 24B→23B  24Bは2通り(2変数と数値)考えてたけどどっちも違って,最近になってよく使う(7回目)再帰の書き方だった.
- [[Problem 0840]] 26B→25B  普通に25Bにはなった.Best短すぎー.
- [[Problem 2048]] 24B    Older pyramid. 普通にやると25Bですが,[[2001>Problem 2001]]の発想で24Bになります.
- [[Problem 1225]] 36B→35B  1倍系(aXaYbみたいな)だと36B止まりだった.関数を工夫してBest.
- [[Problem 0802]] 23B→22B  そんなに難しくなさそうなのに苦戦.


**2018/11 [#k91d9388]
- [[Problem 1913]] 19B    壁を使う,というヒントで.確かに難しくはないけどなぜか全く思いつかなかった.[[1674>Problem 1674]]みたいに多重再帰で19Bに.
- 新問!!!! とりあえず解いたけどあまりBestな自信がない.
- [[Problem 2044]] 14B    ?tsebでれこくらそお
- [[Problem 2035]] 19B    直接.何かシンプルな解がありそう.→15B 某構文を試したら見つけた
- [[Problem 2040]] 13B    分からなかったので結局2変数solverに頼った.出てきた答えを見てもよく分からない... (追)と思いきや改めて見てみると人力でも解けそう.白マス以外は踏まず,1変数17B → 2変数13B.&color(white){ちなみに1138とほぼ同じコードです.};
- [[Problem 2031]] 16B    作ったもののあまりいい問題じゃなかったなぁと少し後悔.想定はXXYXYYみたいな関数です.
- [[Problem 2033]] 21B    [[0392>Problem 0392]]の%%パクリ%%もといリミックス問題.0392の数値を使う方の23B解をいじります.3行だと多分Limitに収まらなさそう.&color(white){1806,1988の発想.};
- [[Problem 2042]] 24B→20B  た,確かに...!  →18B 方針は同じまま,行数を減らして変形してあれが使える形に.面白い問題.
- [[Problem 2046]] 19B→18B  変なことしてたけどとても素直な18Bがあった...
- [[Problem 2043]] 21B→20B  20Bは普通 →19B 類題なのではと踏んで2042のコードをいじっていると案の定似たコードで書けた.
- [[Problem 2047]]  16B    [[Fibonacci word>https://en.wikipedia.org/wiki/Fibonacci_word]] 直進ver.作ってから気づいたのですが直接書いてsolveも可能ですね.そして言われて気づいたのですが某構文でも可能ですね.規則を使った17Bを縮めて16B,が想定Bestです.
- [[Problem 2044]] 14B→13B  .たっだB31てい書接直
- [[Problem 0414]] 20B→19B  これも[[2032>Problem 2032]]も最初20Bで書いていたけど全く違うコードだった(これが2変数で2032が1変数).
- [[Problem 0440]] 32B→28B  1段階目で右の棒,2段階目で下,3段階目で左をなぞる再帰.
- [[Problem 0430]] 20B→19B  多重再帰.いや数値なので理論?
- [[Problem 1548]] 25B→24B  壁を使った再帰.
- [[Problem 1579]] 21B→20B  ようやくできた.なぜかだいぶ苦労した問題.
- [[Problem 0427]] 28B→27B  両方の変数の初項をllにする(+1B),それを特殊な初項で表す(-1B),多変数の多重再帰が使える(-1B),でマイナス1B.
- [[Problem 0416]] 26B→24B  26Bはなにやら壁を使ったよくわからない再帰で書いてたけど, [[0418>Problem 0418]]の方針(5倍系,最初に一辺10の正方形を書く)で直接書いたら更新! (追)と思ったら速攻抜かれた(22B!).短すぎ...
- [[Problem 0416]] 24B→22B  うわーなるほど!関数をより変態的に変形すると向き合わせの不満が解消できて確かに縮む.凄すぎる.
- [[Problem 0551]] 23B→18B  方針は分かっていたのにだいぶ苦戦した.
- [[Problem 0500]] 20B→19B  このパターンのBest化ここ最近で5つめ.
- [[Problem 0505]] 22B→21B  ごちゃごちゃ変数変換しているうちによくわからないけどできてしまうパターン.


**2018/10 [#qe9f72dd]
- [[Problem 2032]] 19B    20Bになれば(いろいろ試せば)19Bにもなります.
- [[Problem 2031]]           sとlsrを再帰で並べる.かなりてきとーな問題なので想定外の解もありそう.
- [[Problem 1917]] 18B    考えたこともなかった.凄すぎる.問題によっては使えるかも?
- [[Problem 0134]] 57B→55B  使えた.互除法を使わない57Bが縮んだ.
- [[Problem 1674]] 22B→21B  多重再帰.
- [[Problem 0225]] 59B→46B  masさんのヒントで.引数mod11歩進む関数の書き方がうまい.HOJ mobileでは途中でNLEして止まったコードをSubmit Formに投げてみると数十分かかって通った.
- [[Problem 1342]] 27B→25B  [[1340>Problem 1340]]を考えていたのにこっちが縮んだ.

**2018/09 [#mb8df25d]
- [[Wild Noodle Summer 2018 Contest is Today]]!!
- 例年と違い, 期間が30日間ではなく30分間だそうです. 問題は10問. 日本時間で明日(9月2日)の朝9時スタート. 
- 速く解くの苦手だけどがんばるぞい!
- 結果なんとか1位獲れた.かなり簡単めな問題ばかりでしたが,Level8のBest化にやたらともたついてしまい(11Bなのに最初16Bで解いてた),他のガチ勢の方々が参戦していたら敗因になっていたかも.
- [[Problem 0333]] 20B→19B  損にしかみえない関数を試したら縮んでしまった.直接.
- [[Problem 0019]],[[Problem 1492]] 21B→19B  うつくしい…
- [[Problem 1277]] 30B    運に恵まれて[[1278>Problem 1278]]よりずっとあっさりsolveできた.いずれもBestが19Bだけど見当がつかない.
- [[Problem 0460]] 24B→21B  このパターンのBest化ここ最近で4つめ.
- [[Problem 0349]] 21B→20B  初期位置が天元ならどう書くかを考えて綺麗な方針に気づいたけど,Bestには届かず.→19B  ちゃんと試したらできた.
- [[Problem 0445]] 20B    まさかの方針…!これはすごい問題.灰は踏みません.
- [[Problem 0328]] 26B    1変数で解けるらしいと聞いて頑張った.縮みそうな雰囲気はあるけどわからない.→25B 3変数になって少し縮んだ.
- [[Problem 1939]] 34B→26B  諦めて長さの育て方をsolver&少し人力で.
- [[Problem 0883]] 44B→40B  少し関数を変えた.



**2018/08 [#yeee5309]
- [[Problem 0422]] 29B→28B むずい.Bestがこの世のものとは思えぬ短さ.
- [[Problem 0720]] 39B→33B ついに美しい経路とパーツを見つけた.
- [[Problem 0947]] 25B→24B 見落とし発見.
- [[Problem 0017]] 26B→25B めちゃくちゃ時間かかったけどやっとBest化.単純ながら今まで考えてなかった経路.wwvwwさんのコメントを見るに違う解かも? →24B 近い方針で縮んだ.実行行であれする1変数再帰です.
- [[Problem 0825]] 30B→25B 見た目綺麗だけどコード的に綺麗じゃない経路を見つけてしばらく粘った.4変数関数とかで書いてたけど試行錯誤するうちに2変数で書けてBest.初期位置がめんどくさいかと思いきや壁で位置が合わせられた.
- [[Problem 1567]] 44B→42B 棒の長さの並び方のある規則に気づけば直接書いて44Bにはなります.ふとmasさんのヒントを見てあっさり実装できたはいいものの,Ktyaさんと同じくa=7で47Bになったり,a=3で半分しか埋まらないのを「命令としての働きのない変数を使う多重再帰」でどうにかして47BになったりしてBestに届かずしばし悩む.Bytes数から考えてできました.
- [[Problem 1494]] 18B    ImagineCupっぽい問題だった.非対称っぽいところからたどる.
- [[Problem 0134]]          「ユークリッドの互除法」というヒントから[[0980>Problem 0980]]みたいにして上の長さと下の長さを一つの数値で表す関数を作って書いているのですが届かない… 実は互除法の書き方が違うのかも
- そして何故かHOJに繋がらない…
- 復活.
- [[Problem 0492]] 25B→21B 成長部分を2変数関数を2重にして書く27Bを経て構造に気づいてBest化.なるほどこういうことか&#12316;
- [[Problem 0303]]          互除法を使った,おそらくmasさんと同じ解でBest化してたけれど,よく見たら26Bが普通に縮んで23Bになった.え&#12316;
- [[Problem 0285]] 48B→47B 逆に回ってみたら1Bだけ縮んだ.[[1532>Problem 1532]]の非Best解の方針でBitをCountするとあっさり48B付近にはなったけど,これだとBestには届きそうにない.かと言って1532のBestみたいな書き方だと左折と両立できそうにない.むずい.
- [[Problem 0828]] 27B→25B 数値を使って3行で書いた27Bに,簡単だけどあまりみない小技が使えて更新.数値つよい.
- [[Problem 0401]] 23B→22B 変数変換.
- [[Problem 0293]] 61B→51B Ktyaさんのヒントを見て.こんな経路の方が10Bも短いとは.
- [[Problem 1393]] 22B→21B たしかに&#12316;


**2018/07 [#t6c4f435]
- [[Problem 1413]] 22B→19B 再帰の初期位置までの移動が多重再帰で綺麗に書けた.
- [[Problem 1459]] 20B    経路ゲー苦手.恐らくこの初期位置から90度回転した次の位置まで移動するから…と考えて,ある程度関数の形と経路が絞り込めた.
- [[Problem 0309]] 22B    最初の2回だけ向きが違う,という単純な規則に気づくのに3年弱を要した.
- [[Problem 1107]] 21B→20B 上下の同じ形を変数で置換してイテレーション毎に2回やるのではなく,成長速度を調整して2回にかけてやるほうが短くなりやすい.
- (追)ぴったりな言葉が見つからなくて苦し紛れにイテレーション毎などと書いたけど普通に「再帰のひと段階あたり」と書けばよかった…
- [[Problem 1306]] 19B    右回りだったり左回りだったりする.3方向ってどういうことやねんとだいぶ悩みました.
- [[Problem 0781]] 21B    解答者の少なさとtargetの配置に幻惑されてたけど落ち着いて空マスも全部通る方針を考えれば簡単.
- [[Problem 0573]] 25B→24B 25Bは2倍3倍.24Bは[[特殊な2倍関数]].やはりこの関数は強かった.
- [[Problem 0275]] 28B→20B 数値関数つよい.
- [[Problem 0292]] 33B→32B 理詰めで到達できなくはなさそうな解ではあるけど自分はたまたま見つけました.
- [[Problem 1013]] 37B→35B→34B 最後の1Bは単純な見落としだけど言われなければ気づいていたかどうか.
- [[Problem 1892]] 20B→18B 20Bは12B構文.改めてちゃんと考えてみるとあっさりBestに.
- [[Problem 0586]] 29B→17B [[12B構文>有理数の成長速度2]]つよい.人力で見つかりました.
- [[Problem 0610]] 30B    フラクタル的な構造だった.
- [[Problem 1605]] 29B    長さが1,2,4,7,12.Best化に滅茶苦茶苦労した.
- [[Problem 0330]] 17B    長さが奇数と偶数.
- [[Problem 0534]] 18B    [[0533>Problem 0533]]とはだいぶ違う方針で解けた.作意は判ったと思うのだけど1B届かない…
- [[Problem 0617]] 24B    四方の区切りかたを45°間違えてた.
- [[Problem 0956]] 26B    同じく.補助関数を使いました.
- [[Problem 0439]] 23B→22B 変態的な数値関数かと思ったら,非数値再帰で綺麗に書けた.
- [[Problem 0513]] 29B→26B 命令を含む多変数関数.なるほど&#12316;
- [[Problem 0828]] 28B→27B 一見無駄そうな方針で意外にも縮んだ.でもBestには届かず.
- [[Problem 1634]] 28B→27B 以前と同じ関数で書き直しただけで縮んだ.謎.
- [[Problem 2030]] 13B    ↓例えばこんなコード.~
 a(X):sXslXsllXa(sX) a()
↓こうやってあえて余計な変数を入れると~
 a(X,Y):sXslXYsllXYa(sX,) a(,)
↓とあるテクが使えて縮みます.~
 a(X,Y):sXa(lXY,a(sX,)) a(,)
命令としての働きのない変数を使うという盲点っぽいテク.[[2021>Problem 2021]],2030の想定解はこんな感じです.(真面目に考えるよりそれっぽい13Bを試す方がはやそう)  
- [[1464>Problem 1464]],[[1900>Problem 1900]]あたりもこの手法.

- 多変数の多重再帰を一般的に([[2019>Problem 2019]]みたいなのは除く)説明してみるの巻.
 a(X,Y):___a(?,?) 
という形の2変数関数(___ではXがYよりも先に出てくるとする)について,~
「''___の1つ目のYより前の部分''(上の例だとsXslX)''のXに『なにか』を代入した形''」が「''1つ目のXより後の部分''(上の例だとslXYsllXY)''または実行行''」に含まれるとき,''その部分を”a(なにか,”で置き換えることができます.''行末に”)”をつけます.

- 『なにか』は空文字列でもいいし,XやYを含んでいてもいなくても構いません.
- 上の例でいうと,「slXYsllXY」がsXslXのXに「lXY」を代入した形なので,そこを「a(lXY,」と置き換える要領です.
- 「1つ目のYより前の部分」を即席の補助関数として使っている,と捉えると解りやすいかも.


**2018/06 [#g37e4030]
- [[Problem 2027]] 12B ぎざぎざっぽい形. 実行長いです.
- [[Problem 2028]] 18B→16B 言われるまで気付かなかったけど賢い16Bがあった.これは良問.
- [[Problem 0974]] 24B→23B  24Bは何種類かあったけど23Bを見つけるのは容易な道のりではなかった.
- [[Problem 2007]] 17Bは1変数でも3変数でも多重再帰2変数でも書けるけど16Bは見当もつかず苦節9ヶ月,セオリーで書けるやん!とついに正解にたどり着いたかと思われたが初期向きが合わずやはり17B.
- →16B 2変数solverしてみると一番単純な1変数17Bに単純なあれをしただけの単純なコードがヒットして吃驚. なぜこれを見落とし続けていたのだろう…
- [[Problem 0648]] 13B→12B 実行超長いです.
- [[Problem 0630]] 22B→19B 結局元のBestが分からないまま更新してしまった…(よくある)  22Bは灰マスを踏まない素直な解,19Bは灰マスを踏みまくる実行長い再帰です.
- [[Problem 1182]] 29B→28B 異様に手こずったけどできてしまえば割と簡単な問題.[[Compressシリーズ]]制覇!
- [[Problem 0842]] 42B→37B 相変わらず[[0840>Problem 0840]]の方は分からないけど,普通の書き方でそこそこ縮んだ.
- [[Problem 2029]] 15B やや見え辛いですが見えたら綺麗に書けます.最後もう1B縮むという罠.
- [[Problem 1900]] 20B→19B とある.
- [[Problem 1430]] 31B→26B 都合のいいように関数に変数を足していくという自分の得意な手口だった.


**2018/04 [#gcee4694]
- [[Problem 1666]] 44B→29B→28B 自力では1B届かなかった(XssXssで書いてました). Best解すごい.
- [[Problem 0217]] 39B→30B 書き直した. できた.
- [[Problem 0806]] 19B→18B コードを睨みつけたら縮んだ. 公開コードをみてみると,想定Bestが自分の19B解とはだいぶ違って驚きました. (自分は sslssslslssls という形を使っていました)
- 自分の更新Bestのうち,コンテスト問題のものは問題ページに投稿しようかななどと思う今日この頃.
- [[Problem 0230]] 41B→35B Ktyaさんのヒント通りに書いたらいい感じのコードになった. でもBestは遠い.
- [[Problem 1681]] 22B→21B ↑0806と同様.
- [[Problem 0756]] 21B→20B 至って普通だった. 向きを1つ損してた模様.
- [[Problem 0616]] 16B [[0755>Problem 0755]]のコメントを見て試しまくったら解けた.
- [[Problem 0785]] 25B→23B 3倍系でシンプルに書けた.
- [[Problem 0727]] 24B→17B できた. なるほどなぁ.
- [[Problem 1345]] 19B→18B ほぼ1B削るだけでよかった.
- [[Problem 0750]] 28B→26B シンプルだけど見落とされてる経路(x:srsl
y:xxxl
syyyysyyyysssssss 的な)と,それに適合する関数で26Bに.
- [[Problem 1547]] 28B→25B 多重再帰で縮む形がないか部位固定して探索したけど見つからず.
- [[Problem 1677]] 27B→23B 公開コードをCopy&Paste. この発想はなかった.
- [[Problem 1635]] 9B乱歩を利用する方針を思いついたけど22Bにしかできず.
- [[Problem 1637]] 41B→35B Copy&Paste. 変態解すぎてよくわからない.
- [[Problem 0397]] 20B→19B 乱歩に特殊な初項を混ぜて基本パーツも作る. [[1183>Problem 1183]],[[1330>Problem 1330]]と似た感じ. →18B 「実はもう1B縮む気がしてしかたがない。」というwwvwwさんの言葉を頼みに色々試したら確かにあった.
- [[Problem 0506]] 30B→29B 多重再帰でBest化できてしまった. 腑に落ちぬ.
- [[Problem 1351]] 26B→25B そんなに変な解ではなかった.


**2018/03 [#vd4cb501]
- [[Problem 0812]] 15B→14B 眺めていたら14Bで書ける気がして、試してみたら確かにできた.  稀によくある見落とし.
- [[Problem 1982]] 15B [[1072>Problem 1072]]みたいな経路で右の壁で位置を合わせます. 
- [[Problem 0754]] 20B ようやく綺麗な規則が見えた. 何故か1B短い. この勢いで[[0445>Problem 0445]]も解こうとしたけどこっちは4Bオーバー.
- [[Problem 0822]] 29B→27B なるほどこの関数強い. 
- [[Problem 0283]] 25B→24B よくわからないけど関数を変えてみたら縮んだ.
- [[Problem 0415]] 31B→28B 2年以上ずっと31Bから縮まなかったけど,ふと数値関数で書いてみたら更新!!
- [[Problem 1012]] 27B→24B 中心からスタートすれば綺麗に書けそうなことに気づいて,そこからの短縮も上手いこといってBest!
- [[Problem 0405]] 24B→23B rslXsを使わない(たぶん)想定径路に気づいたけどそこからBest化するのに手間取った.
- [[Problem 0561]] 37B→36B ふと数値関数で書いてみたらあっさり37BになったけどそこからBest化するのに手間取った.
- [[Problem 1148]] 17B→16B 使いこなした. 自作問のコードに似てた.
- [[Problem 1189]] 28B→26B ふと数値関数で書いてみたら更新!!
- 数値関数つよい.

**2017/11 [#ke0e8a5b]
- [[Problem 0719]] 22B→20B 久しぶりにやってみたらあっさり.
- [[Problem 0625]] 21B→20B なるほど経路が違った.
- [[Problem 0363]] 19B→18B ↑で悩んだおかげでできた.
- [[Problem 0606]] 21B→20B 22B,21B解の延長上にあったのに矢鱈と手間取った.
- [[Problem 1032]] 31B→30B 数値を使わずに書いているけどこれじゃBestは無理そう.
- [[Problem 1279]] 96B→80B 謎多き問題.
- [[Problem 1441]] 23B→22B 23Bは変数を増やして特殊な初項でした.
- [[Problem 1147]] 18B→16B この手法をやっとちゃんと使いこなせるようになった気がする.
- [[Problem 0646]] 25B→21B 空マスも全部通りました.
- [[Problem 0487]] 20B→19B 1125
- [[Problem 1223]] 18B→16B 使いこなせた.
- [[Problem 1224]] 22B→16B ↑ができたらすぐ.
- [[Problem 1544]] 35B→26B 公開コードを大いに参考にしつつBest化.
- 最後ちょっとせこいけど1500Bests!
- [[Problem 1600]] 22B→17B solverで出た18Bが特殊な初項で17Bに. →16B もう1B削っても支障なかった.
- [[Problem 1635]] 24B→22B masさんの公開コードが縮む. 21Bが謎.
- [[Problem 0683]] 45B→44B Bestが近くて遠い.
- [[Problem 0753]] 30B→29B 縮みそうだったのでねばった.
- [[Problem 1432]] 24B→23B 縮みそうだったのでねばった.
- [[Problem 2020]]   15B NO TITLE. 理詰めでsolve&Best化できます.
- [[Problem 2021]]   13B ダミーの変数を使ったとあるテクで13Bになります. タイトル思いつかない. 
- 家のパソコンが2台とも死んでHOJができない...><


**2017/10 [#h9ff732b]

- [[Problem 0466]] 36B→32B [[1132>Problem 1132]]みたいな短縮ができるように3倍系関数を弄った.
- [[Problem 2017]]   14B 問題タイトルのおかげで解けた.
- [[Problem 2018]]   16B むずい...
- [[Problem 2014]],[[Problem 2017]],[[Problem 2018]] うわーこれは凄い! 多変数の多重再帰でこういう縮め方もできるとは! 完全に見落としていた...
- [[Problem 2018]]   14B 短縮する前のコードがそもそも難しい(自分は育て方を部位固定してsolverに任せた)ので,とあるテクを使った14Bコードを試しまくったほうが早そう.
- [[Problem 0112]] 20B→19B とあるテクが早速使えた. こういうのが縮むのはやばい.
- [[Problem 1373]] 14B→13B 普通の2変数.
- [[Problem 1314]] 14B→13B とあるテク. 
- [[Problem 1025]] 30B→29B とあるテク. 
- [[Problem 1157]] 14B→13B 普通の2変数乱歩.
- [[Problem 1305]]   16B ヒント問題のおかげで解けた.
- [[Problem 1114]] 22B→21B とあるテク. 
- [[Problem 1464]] 18B→17B とあるテク. 
- ↑↑とあるテクと云いつつ,1464以外はとあるテク関連の新問3問ほど変態的ではない短縮形です.
- a(X,Y):XXXYYYa(??) → a(X,Y):XXXa(Y,a(??)) みたいな感じ.
- [[Problem 1331]] 27B→26B 2変数.
- [[Problem 0655]] 17B→16B 多重再帰とかそっち方面の短縮ばかり考えていた.
- [[Problem 1907]] 26B→25B 見落とされがちな縮み方.
- [[Problem 0683]] 62B→45B 回収の順番を変えたらだいぶ縮んだ. あと4B.
- [[Problem 0564]] 19B→18B 試し忘れ.
- [[Problem 1278]]   30B 気合い. 
- [[Problem 1823]]   19B 解いてから気付いたのですが,タイトルは[[前問>Problem 1822]]の天丼(お笑い用語)という意味...!?
- [[Problem 1110]]   18B XXXXで固定してsolver. もっと粘れば自力で解けたかなぁ...
- [[Problem 1273]] 19B→16B 1変数solver. こっちは自力でできる気がしない.
- [[Problem 1448]] 31B→24B 某サイトから方針(ssrssl単位の乱歩)をパクった.
- [[Problem 1911]]   16B なるほど&#12316; 難しくはないけど長いこと気づかなかった.
- [[Problem 1727]]   16B なるほど&#12316; これも盲点だった.
- [[Problem 0500]]   20B 解けたけど1B及ばず.
- [[Problem 0474]]   22B タイトルと「成長は2段階ではない」というヒントで解けた.
- [[Problem 0672]]   25B 解けたけど3B及ばず. → 22B 改めて書いてみたら普通にできた. 25Bは面倒なことをしていた.
- [[Problem 0692]]   13B 以前もsolverで探索したけどstep数が足りなかったらしい.
- [[Problem 0981]] 19B→18B 成長部分を一部固定して2変数solverで探索したらそこそこ難しい解が出てきた.
- [[Problem 0349]] 22B→21B Bestが遠い.
- [[Problem 1959]] 24B→23B なるほど&#12316;. 2行目が0引数でも1引数でも23B.
- [[Problem 2019]]   12B 2変数. とあるテクと似ているといえば似ているかも. 関数定義ではなく実行行で多重再帰することでllsが短く書けます.
- [[Problem 0605]] 25B→16B mapのターゲットの数を減らしてsolver.
- [[Problem 1792]] 26B→25B 使いまわせるように関数を弄った.
- [[Problem 0458]]   17B やっと解けた. こういうの見つけるの苦手.
- [[Problem 1897]]   17B ↑が解けたらすぐ.
- [[Problem 0008]] 16B→14B なんと!!!! 自分の16B解からそのまま2B消すだけで通ってしまった.
- [[Problem 1414]] 21B→19B 経路は大体同じまま.
- [[Problem 1951]] 29B→27B lsrsパーツを使ってみたら縮んだ.
- [[Problem 1940]] 30B→28B 5,4,2,1 という長さを12B構文っぽい感じで. (追)直接書いても28Bになった.
- [[Problem 1936]] 31B→29B こっちは直接書いた. ↑もこれもパーツはsrsslsです.
- [[Problem 1889]] 31B→30B 向き合わせの無駄というか,2倍系関数の使い方の無駄というか...
- [[Problem 0212]] 12B→11B 一番短いのでも20万steps以上かかった.
- [[Problem 0320]] 24B→23B Bestが遠い.
- [[Problem 0223]] 26B→25B 26Bコードの内1つがうまいこと縮んだ.
- [[Problem 0197]] 27B→26B 行数を増やした.
- [[Problem 2002]] 17B→16B 17B解がもっとシンプルに書けた. 割と綺麗なコードだけど,15B解もwwvwwさん曰く「想定解!」だそうなので是非ともBest化したいところ. それにしてもこんなに手強い問題になるとは...

**2017/09 [#p0c5002f]

- [[Problem 0287]] 13B 最近作った1関数solverで解けました. 4倍系です.
- [[Problem 0977]] 同じくsolver. 自力で解ける気がしない. XrXrXX.
- [[Problem 0231]] 48B→46B 気合い.
- [[Problem 0488]] 28B→26B 数値関数でいい感じに書けました.
- やったー新問!
- [[Problem 2006]] 23B 経路探す系の問題は苦手なのですが,単純な経路と聞いてしばらく粘っていたら解けました. なるほど&#12316;.
- [[Problem 2004]] 14B 16Bにしかならず悩んでいたけどまさかの3変数solverで解決してしまった... 想定解がまだ分からず.
- [[Problem 2007]] 17B しばし迷走の後,至って普通な17Bに. と思いきやまだ縮むらしい.
- [[Problem 1016]] 15B いろいろ試していたらできた! 関数とループです. ちょっと意外な見落とし.
- [[Problem 2009]],[[Problem 2010]] 同じ15Bになったけど違う方針. 面白い.
- [[Problem 2011]] 15B 1016と似ているので想定解とは違うかも?
- 束の間の1位!
- Summer2017Contestはあまり詰められず,未solveが4問も残ってしまいましたが,解けない問題もなりふり構わず部分点を拾いまくったのが奏功してか(少なくともLeaderboardを見る限りは)なんとか1位になれた模様.
- 1B,8B,9B,25B,18B,21B,6B,20B,15B,27B,22B,20B,23B,22B,34B,16B,26B,21B,30B,--,31B,--,23B,--,-- でした.
- [[Problem 1431]] 22B→19B 18がBestじゃなかったらしいと聞いて考えていたらできました.
- [[Problem 2012]] 15B 提案に乗って作ってみました. 金環日蝕.
- [[Problem 1924]],[[Problem 1586]],[[Problem 1589]] こういうことだったのか! 
- [[Problem 1970]] 17B→15B [[1589>Problem 1589]]の構文でBest化できました. 手で探すのは大変そうだったのでプログラムで. 
- [[Problem 1955]] 16B→15B 同じく. 16Bも同じ構文だったけどsが1つ無駄だった. 
- [[Problem 1914]] 80B→75B Bestが短すぎる... 
- [[Problem 0184]] 38B→37B 38Bコードに縮む余地があった. 
- [[Problem 1734]] 19B やっと解けた. 面白い.
- [[Problem 1553]] 25B→23B 特殊な初項で24Bになって,さらに実行行頭のlを消せて23Bになりました.
- 単独集計と問題ページ作成ありがとうございます!!
- [[Problem 0970]] 20B→18B ssrsslss単位の乱歩の20Bが特殊な初項で縮みました.
- [[Problem 1062]] 34B→32B 前は多変数関数でアクロバティックなことをしていましたが,それをやめて1倍系で.
- [[Problem 0824]] 27B→25B 補助関数であっさり.
- [[Problem 1899]] 26B→24B 棒の作り方のミス. コードの発想は合っていたのに,無駄に非数値変数を2つ使っていた.
- [[Problem 0725]] 36B→34B 置換を関数に変えました.
- [[Problem 1890]] 33B→19B 1899の類題だと意識して眺めてたらやっと経路が見えました. 位置合わせがうまい.
- [[Problem 0678]] 22B→21B 1899の棒の作り方で縮んだ.
- [[Problem 1825]] 11B→10B [[多重再帰構文!]]
- [[Problem 0401]] 23B 解けたものの1B及ばず.
- [[Problem 1814]] 28B→26B 1815みたいな経路.
- [[Problem 2003]] 20B→19B 関数を変えた.
- [[Problem 1975]] Ktyaさんが想定解とはちがう解だったそうで吃驚. 実行行頭にrがあるとのことだったのでまさかとは思っていたのですが... 新テク,とんと見当がつかぬ.
- [[Problem 2013]] 11B そういえばこんな問題なかったなあと思って作りました. 11Bより先はない...はず...多分...
- [[Problem 2002]] solveされてる!!!! 問題を没にせずに済んでよかった. 自分も結構いろいろ試したのですがSystem Testを突破できる解がどうにも見つからず,半ば諦めていました. これから考えます.
- [[Problem 2002]] 17B 解けた!!!! 他のコードが通らなかった理由もこれだけ通った理由もよくわからない. あと2B.
- [[Problem 0680]] 46B→33B 漸く規則に気付いた. あと4B.
- [[Problem 2014]] 19B なるほど&#12316;. 変数を増やすよりもあの手法のほうが短く書けた. 
- [[Problem 1898]] 18B→16B なるほど&#12316;. こういう問題好き.
- [[Problem 1934]] 30B→27B 気合い.
- [[Problem 2014]] Bestが短すぎる...
- [[Problem 2015]] 27B とりあえず.
- [[Problem 2016]] 14B 14B?
- [[Problem 0163]] 26B→24B 規則認識が難しい.
- [[Problem 2015]] 27B→25B これも想定解がひくほど短かったりしそうで怖い.

**過去に解いた問題 [#b43b42ed]
自分の単独Bestがかなり増えていて驚きました. なんとなく思いついたものにコメントしてみます. ヒントになっていたりなっていなかったりします.

- [[Problem 0018]],[[Problem 1481]],[[Problem 0432]],[[Problem 1348]]: [[1975>Problem 1975]]の手法で縮みました. 0432はかなり無理矢理.
- [[Problem 0526]],[[Problem 0569]],[[Problem 0372]],[[Problem 1382]],[[Problem 1888]] 12B構文絡みで書くと数値変数が少なく済んでお得なパターン. 0091抜かれた...
- [[Problem 0057]],[[Problem 0058]] 変数を増やしたり,数値関数を再利用したり.
- [[Problem 0138]] pastaさんのヒントの通り11歩単位の乱歩を探索したら何故か単独に. 実質10B乱歩. 実行が矢鱈と長い.
- [[Problem 0184]] 直接書くと45B辺りにしかできなかったのですが,互除法を使って書けないものかと試行錯誤するうちにとんでもない変態解を生み出してしまった.
- [[Problem 0265]] XsYsXで2行.
- [[Problem 0302]] 直接書けばいいことに長いこと気づかず解けなかった.
- [[Problem 0357]] 大で小を挟んで育てていったものを最大の時だけ実行する数値関数で.
- [[Problem 0368]] Limitが鬼畜.
- [[Problem 0419]],[[Problem 0459]] 数値関数の変数を増やしました. 0459が解けて長らく謎だった[[0201>Problem 0201]]も解けました.
- [[Problem 0798]] 小さい正方形を書くのをやめて棒を立てることにしたら26Bになって,いちいち初期位置に戻るのをやめたら24Bになりました.
- [[Problem 0845]] 至って普通の置換とn倍だけ.
- [[Problem 0857]] 数値絡みの再帰です. 割と普通.
- [[Problem 0980]] 経路を見直した上で a(N):(N/15)歩+r+(N%15)歩+r みたいな(厳密には少し違う)関数を極力少ないByte数で定義してなぞりました. 
- [[Problem 1108]] ぐねぐねしてます.
- [[Problem 1183]],[[Problem 1330]] XXrXX型の再帰に特殊な初項.
- [[Problem 1204]] r/lの数を1個減らせた.
- [[Problem 1307]] rsとlsを数値で並べる.
- [[Problem 1682]] XssXで2行.
- [[Problem 1569]],[[Problem 1705]] 12B構文.
- [[Problem 1782]]: [[0249>Problem 0249]]の渦バージョン. [[Thue-Morse sequence>https://en.wikipedia.org/wiki/Thue%E2%80%93Morse_sequence]]っぽい増やし方だと左折との両立が無理そうなので,Bitの偶奇で判定しました.
- [[Problem 0129]],[[Problem 0924]],[[Problem 1469]],[[Problem 1488]]: [[12B構文の周辺]]で紹介されている数値乱歩構文. 
- この構文のsolverを作るのは比較的簡単だったので,2変数solverを作る以前にこっちの構文でBest化できた問題がわりとあります. [[0028>Problem 0028]],[[1061>Problem 1061]]etc.
- [[Problem 0026]],[[Problem 0520]],[[Problem 1719]],[[Problem 1744]] 1変数solver.
- [[Problem 0148]],[[Problem 1111]],[[Problem 1138]],[[Problem 1773]] 2変数solver.
- [[Problem 0140]],[[Problem 1426]] 3変数solver.

**2017/08 [#a3232892]

見よう見まねで書いてみます. おかしな点があったら教えてください><

- [[Problem 2002]] 2001の13Bコードの数値を変えただけだと通らない(HOJの仕様上,step数が1000000以下でも変数が長くなりすぎるとアウト?)ことは[[0545>Problem 0545]]で実験済みだったのですが, 他の解も何故か通らなくて目を白黒させています. n時間動かしてクリア出来たと思ってもFailed System Testになる...
- というわけで2002はそのうち消すかもしれません...orz
- 917587stepsと結構長いことかかるので,似たような仕様上の制限に引っかかっているのかも.
- [[Problem 2001]] 2001と2002の想定Bestはともに12Bでした. 経路は直接書いた場合と同じで, 数値を使います.

他の自作問題について.
- [[Problem 1975]] [[1902>Problem 1902]]の発想をさらに発展させた感じです. a(X,Y):XlXYXlXa(sY,X) a(,) ←この15Bコード(逆回りもあります)を1B縮めてください. [[Problem 1991]]もこの手法.
- ちなみにこの手法で単独Best化できた問題がいくつかあります.
- [[Problem 1981]] これも似た感じ. 長方形の経路で,壁は使いません.
- [[Problem 1988]] 謎タイトル. 想定解は a(X,Y):sXa(sXlsr,Y-1)lsr a(,6) を縮めます. [[Problem 1989]]がヒント.
- [[Problem 1974]] [[0986>Problem 0986]]のduodecimalバージョン. Limitに収めるには工夫が必要です. 20Bとは何事!?

最近解いた問題.
- [[Problem 1998]] 結構苦労して割と綺麗な21B解に至ったのですが,まだBestではないらしい? むずい
- [[Problem 2003]] 経路の形がデジャヴ. でも綺麗に書けない...
- [[Problem 0646]] 27B→25B 直接書くのをやめて数値絡みの再帰で書きました. [[Double frame シリーズ]]制覇!
- [[Problem 0649]] 24B→23B 向きあわせのミス. 直角三角形パーツをひたすら使いまわしています.
- [[Problem 0410]] 32B→29B 直接書いてみたらいくらか縮んだけどBestが遠い.
- [[Problem 1175]] 23B 解けた!と思ったら更新できた! [[特殊な初項]]です. 変数を増やして初項を小さくしました.
- [[Problem 0730]] 26B 解けた!と思ったら更新できた! [[特殊な初項]]です. 変数を増やして初項を小さくしました.


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS