差分

ナビゲーションに移動 検索に移動

Fizz Buzz

2,768 バイト追加, 2014年9月1日 (月) 03:53
ページの作成:「'''Fizz Buzz'''(フィズ・バズ、'''Bizz Buzz''' や '''Buzz''' とも呼ばれる)とは、英語圏で長距離ドライブ中や飲み会の時に行われ...」
'''Fizz Buzz'''(フィズ・バズ、'''Bizz Buzz''' や '''Buzz''' とも呼ばれる)とは、英語圏で長距離ドライブ中や[[飲み会]]の時に行われる言葉遊びである。

== 遊び方 ==
プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は 「'''Fizz'''」(Bizz Buzz の場合は 「'''Bizz'''」)、5で割り切れる場合は 「'''Buzz'''」、両者で割り切れる場合は 「'''Fizz Buzz'''」 (Bizz Buzz の場合は 「'''Bizz Buzz'''」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。

== ゲーム例 ==
ゲームは、以下のとおりに発言が進行する。
*1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz, 16, 17, Fizz, 19, Buzz, Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, Fizz Buzz, 31, 32, Fizz, 34, Buzz, Fizz, ...

== コンピューターでの実装 ==
このFizz Bussを[[コンピュータ]]の画面に表示させる[[プログラム]]として作成させることで、[[コード]]がかけないプログラマ志願者を見分ける手法を Jeff Atwood が [[FizzBuzz問題]] (FizzBuzz Question)として提唱した。その提唱は[[インターネット]]の様々な場所で議論の対象になっている。

また、実際に「制限時間2分以内」「剰余(%記号等)を用いない」「1行でできる限り短く(ワンライナー)」などの[[縛り]]でゲーム性を持たせコード記述の腕試しをする者が続出した。

===C言語===
[[C言語]]での実装例。
<source lang="c">
#include <stdio.h>

int main(void)
{
int i;
for (i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
printf("FizzBuzz\n");
} else if (i % 3 == 0) {
printf("Fizz\n");
} else if (i % 5 == 0) {
printf("Buzz\n");
} else {
printf("%d\n", i);
}
}
return 0;
}
</source>

=== Haskell ===
[[Haskell]]での実装例。
<source lang="haskell">
let f n
|m 15 = "fizzbuzz"
|m 5 = "buzz"
|m 3 = "fizz"
|True = show n where m x = mod n x == 0 in map f [1..100]
</source>

== 関連項目 ==
*[[ねずみ算]]
*[[うさぎ算]]

== 外部リンク ==
* [http://www.codinghorror.com/blog/archives/000781.html Why Can't Programmers.. Program?]
* [http://cfs.maxn.jp/neta/HQ9F+.html HQ9F+] (ジョーク向け[[プログラミング言語]]である[[HQ9+]]に、FizzBuzzを追加し拡張したもの)

[[Category:言葉遊び|ふいすはす]]
[[Category:プログラミング|Fizz_Buzz]]
匿名利用者

案内メニュー