PHPでFizzbuzz最短43バイト
今回は解決できてませんし、解決の糸口すら掴めていません。
PHPのFizzBuzz最短は長らく56バイトでした。
<?while($i++<100)echo$i%3?!$$i=$i:Fizz,$i%5?$$i:Buzz,~ ;
<?for(;$i++<100;)echo$i%3?!$$i=$i:Fizz,$i%5?$$i:Buzz,~ ;
ところで先日なんとなくshinh.orgを見てみたんですよ。
43?????????
他の回答者がみな56バイトで横並びになっているところに突然3/4の長さですよ。
しかもここ、もはや古代語と言って差し支えないPHP5.3.8ですからね。
一体全体どうなってんだ?
完全に理解の範疇を超えています。
さらに目を引くのが0B / 30B / 13Bという文字の使用割合です。
これは基準が公開されていて、順にバイナリ0バイト、英数30バイト、記号13バイトを使っているという意味になります。
56バイト達成者は全員1B / 26B / 29Bとか1B / 28B / 27Bのような割合になっているので、43バイト達成者は記号が圧倒的に少ないです。
さらに改行を表すchr(245)
のバイナリを使っていません。
しかしですねここまでくると、最低限必要そうな記号を上げていくだけで、
・PHP開始タグ<?
・ループwhile($i++<100)
・改行および末尾"\n";
これだけで既に記号を12文字使ってるのですよ。
記号の削減は、小手先の変更でどうにかなるレベルではありません。
どうやら根本的に考え方を変えなければならないようです。
が、正直何一つ思いつきません。
私にはもう、<?=file_get_contents("path/to/fizzbuzz");
みたいな何らかの回避ルートを見つけ出したとしか考えられません。
まあ、最近の他のコンテストを見てみると見事に何かされた形跡があるので、それが正解なのかもしれませんけどね。
ちょっと私のレベルではどうにもできなかったので、誰か答えよろ。
Author And Source
この問題について(PHPでFizzbuzz最短43バイト), 我々は、より多くの情報をここで見つけました https://qiita.com/rana_kualu/items/3da0b095cd9b6b81e3bd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .