2018年 03月 08日
へっぽこ腕試しに、やってみた。(手元にwindowsマシンがないのでアイデアを練ること1日。コード作業に試行錯誤で数時間)
環境文字指定の自己参照、と、文字切り出し位置を変数で指定するのに for 文で変数を作ればできそうというアイデアで挑戦。 cmd/q/v:on/c "for /L %A in (1,1,100) do (set/a I=%A%3,Z=%A%5>nul&(for %B in (!I!) do set I=!I:~%B,1!)&for %B in (!Z!) do set Z=!Z:~%B,1!)&set $= &(if defined I set $=!$!Fizz)&(if defined Z set $=!$!Buzz)&set $=!$:~1!&(if not defined $ set $=%A)&echo !$!"254 byte 実行結果 私にはこれが限界だったが、さすがはプロの方は更に100Byteほども小さく仕上げていた。(コードは他人様のですので実行結果だけ表示) FizzBuzz問題についての、Wikipediaの解説 剰余を用いないとか、最初はどうやるの?と思ったが、自分の出力結果リストを見て納得。 (時間が3点だけの時計と、5点の時計と、同時に回して・・・ということは、15点時計を考えればOKか) つまりは、計算させるんじゃなくてリストを用意して当てはめるという発想。 むかーし、coreアーキテクチャになる前の Pentium時代に、Pentium FDIV バグと呼ばれる問題が明らかになったことで知ったが、計算をさせるのではなくリストに当てはめる(日本の九九丸暗記はまさしくこれ)という手法は、ずるそうに思えて有効なのでした。 その結果、以下のワンライナーで解決したのでした。←嘘です、バグってました! cmd/q/v:on/c "for /L %0 in (1,1,8) do for %A in (1 2 i 4 u i 7 8 i u B i D E z) do if %A==i (echo.Fizz) else if %A==u (echo.Buzz) else if %A==z (echo.FizzBuzz) else set/a $=%0*0x%A&echo." 187 byteプロには及ばないし、カウントが100を超えてしまってるなんちゃって作品だが、十分に自己満足はできなのでした(笑)←勘違いのぬか喜びでした! 入浴中にふと思いついたのでさらに2段階の手入れをしてみる。 これが可能なのは、16進数にするのが英小文字でも許容されていればの話。←ここも大いに勘違い! (例によって手元には実証できるPCがない)→ やはりこけた cmd/q/v:on/c "for /L %0 in (1,1,8) do for %A in (1 2 Fi 4 Bu Fi 7 8 Fi Bu b Fi d e FizzBu) do if %A gtr f (echo.%Azz) else set/a $=%0*0x%A&echo." 150byteさらに短くする方策としては、方言(?)として、BizzBuzz と言うやり方なら次に書くように手直せそう。 cmd/q/v:on/c "for /L %0 in (1,1,8) do for %A in (1 2 i 4 u i 7 8 i u b i d e izzBu) do if %A gtr f (echo.B%Azz) else set/a $=%0*0x%A&echo." これで 145Byteかな?検証したらスクリーンショットを貼っておきます。(今度はバグしないように w)←あはは!!完璧にバグってました! バグってましたので後始末の投稿が続きます(泣
by bucmacoto
| 2018-03-08 00:47
| &Tips;&code;
|
Comments(0)
|
おきにいりすと
closing / sleeping
イラスト
わるとも
Photo plus α
からだ と こころ
archive in this blog
統計資料・PC史資料など
勝手に応援
machine translation
以前の記事 カテゴリ
タグ
日記録(345)
市内風景(296) 小さな説(255) 写真と画像(217) 詩もどき(180) 回顧(109) おふざけ(94) science(79) 備忘Log(65) &Tips;&code;(62) おはなし(61) 夢想(57) 冬雪景(48) nursery(36) (?_?)(30) star&moon(29) my function & character(29) aha♪ / esprit(28) work_list(22) 食記録(18) 若者への手紙(17) present(13) 一画一句(11) 文・人・理(9) 春花草木(8) 記事ランキング
最新のトラックバック
検索
その他のジャンル
ファン
|
ファン申請 |
||