2007年05月09日

FizzBuzz問題

Posted by nene2001 at 14:05 / Tag(Edit): programing puzzle / 0 Comments: Post / View / 2 TrackBack このエントリーを含むはてなブックマーク

どうしてプログラマに・・・プログラムが書けないのか? 

FizzBuzz問題、面白そうだったので考えてみた。
考えてみて1分以内で戦略はできたが(15の剰余でフィルタした後、3の剰余でFIzz、5の剰余でBuzzを出す)、3の剰余と5の剰余を取るにも関わらず15の剰余も計算するのが、同じ事2度やっててどうにもいけてないやり方な気がして、5分くらい考えたが代案浮かばず。

あきらめてブクマを見てみる。

dankogai !dankogai, 一行野郎, oneliner perl -le 'print $_%15?$_%5?$_%3?$_:Fizz:Buzz:FizzBuzz for(1..100)'

いけてないと思ってたが弾さんも同じ戦略だったので一安心。
でもやっぱり15の剰余を使わないやり方ないか探してみると、

gomis 最短を目指してみる。perl -le 'print(($_%3?"":Fizz).($_%5?"":Buzz)or$_) for(1..100)'

あった。
なるほど、出力結果に対してorとるのか。

  • 3の剰余、5の剰余 ⇒ 15の剰余

の部分を繰り返していないだけでなく、

  • Fizz、Buzz ⇒ FizzBuzz

の冗長性もないので、私的にはこれチャンピオン。

と他人のばかり見ててもあれなので、自分でも書いてみる。
普通のやり方はやり尽くされてる感なので、他のやり方...といってもFizzBuzzロジックは他に思いつかなかったので、ループに手を入れてみる。
元記事に、

実際的な問題を解くのに再帰が使えない候補者をたくさん面接してきた。

云々あったので再帰を使ってみた。

perl -le '$f=sub{$a=shift;return if($a>100);print(($a%3?"":Fizz).($a%5?"":Buzz)or$a);$f->(++$a)};$f->(1);'

いやそれがどうしたと言われれば困りますけど。

でもなんか面白かったので、自分でも問題作りたくなった。
FizzBuzzみたいなシンプルで面白いのは作れないけど、何か自分の分野の周りでないかなーと思ってたら、こんなの思いついた。

  • 長文テキストから、その中に含まれる地名を全てマッチングして抜き出し表示するプログラム
  • 抜き出す対象の地名は、「東京」「大阪」等単独単語で、別リストとして持つ(市区町村、町丁目等の住所の木構造は考えなくてよい)
  • 表記の揺れに対応する(例えば、住所リスト中に「市ヶ谷」とあり長文テキスト内が「市が谷」であってもマッチ)。とりあえずは「ケ、ヶ、ガ、が」「龍、竜」だけ考慮。(汎用的に作れれば越したことはない)
  • 住所リスト中の表記も揺れている(「ヶ」「ケ」「が」「ガ」全て含まれる可能性がある)
  • Builtin以外のPerlモジュールは使わない(表示にsay使いたいからPerl6::Sayとか、要求ロジックに使わない場合はおk。)

みたいな感じですけど、要求仕様判りますかね...?

昼休み終わったので、仕事が終われば自分でも考えてみます。


Related query words in Google & Yahoo
Related Books from Amazon
Trackback to this entry
TrackBack URL :
Trackbacks
2007-05-09
Excerpt: FizzBuzz問題 foreach my $n (1 .. 100) { my $matched = 0; if (! ($n % 3)) { pri...
Weblog: はやくプログラマーになりたい
Tracked: 2007年05月09日 15:31
Fizz-Buzz問題
Excerpt:  Fizz-Buzz問題というのがあるらしい。  休出でひたすらデバッグしてたと...
Weblog: 紫電の徒然なる雑記帳
Tracked: 2007年05月13日 22:27
Comments
コメントはありません。
Post a comment












Remember personal info? 
2007年05月
Su Mo Tu We Th Fr Sa
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

About Me

Navigation

Search
Google
Web
kokogiko.net
Archives
Recent Entries
Recent Comments
Recent Trackbacks
姫路のオモシロ寿司屋(ここギコ!)
0系こだまとひかりレールスターに乗ってきた ドクターイエローも見た
姫路のオモシロ寿司屋(ここギコ!)
位置情報ベース広告AdLocalへ一般からも入札が可能に
「定義できない」とのたまうものを自説根拠の説明の中で延々と使う不誠実(笑)(ここギコ!)
文化は変わっていくのは当たり前だからこそ、今問われているのはリアルタイムの選択
現代アイヌの政治運動は利権獲得のためのようだな。(むにゅう!の平和大好き! はてな基地)
文化は変わっていくのは当たり前だからこそ、今問われているのはリアルタイムの選択
的外れですた恥ずかしい Googleは世界標準の絵文字を作ろうとしてるわけではない、少なくとも、今のところ(ここギコ!)
絵文字標準化でのキャリア批判に思うこと
すごい職場の活性法(これが答えだ)
人員がクラスタ化できている職場と言うのはうらやましい そろそろ限界です
文化は変わっていくのは当たり前だからこそ、今問われているのはリアルタイムの選択(ここギコ!)
大和民族の定義云々について
歴史のダイナミズムの元では右翼こそ変わらなければならない(ここギコ!)
右翼はアイヌや沖縄を包摂する論理を構築すべきではないのか
右翼はアイヌや沖縄を包摂する論理を構築すべきではないのか(ここギコ!)
大和民族の定義云々について
政治と祭祀が不可分と考えるなら、全ての祭祀を引き受けるのが筋(ここギコ!)
大和民族の定義云々について
Hatena bookmarked
My del.icio.us

Banners

Syndication
Powered by
Get it!!