夜空日和 [出張版]

星を見上げながら、今日を語ってみようか

 

スポンサーサイト


Category: スポンサー広告   Tags: ---
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ビンゴを作ろう!


Category: 技術   Tags: ---
とある友人は言う。
 「俺はビンゴに強いぜ。俺様は最初から真ん中を開けることが出来るからな!」

突込みどころ満載でしたが、そんな会話から「いかに簡単にビンゴを作るか?」という議論に。
要求仕様は次のとおり!!
  • 1~75 の間の数字を表示する
  • ランダムに表示する
  • 1度に1個表示する
  • 1回表示した物は、二度と表示しない

さて、どうやって実装しましょうか?


C++好きな私の場合、先輩(C++0x-er)に協力を頼んで、次のコードを教えてもらいました。
#include <vector>
#include <numeric>
#include <algorithm>
#include <iostream>
using namespace std;

int main(void)
{
	vector<int> v(75);

	iota(v.begin(), v.end(), 1);
	random_shuffle(v.begin(), v.end());

	// mingw g++ 4.5.2 ではエラー
	/*
	for ( auto x : v ) {
	 	cout << x << endl;
	}
	*/
	for_each(v.begin(), v.end(), [](int x) {
		cout << x << endl;
	});

	return 0;
}
ちょっと意外だったのが、Range-based for-loop が実装されている gcc 4.5 でエラーが発生したこと。
うーむ、Range-based for-loop に vector は使えないのかしらん?(先輩に伝えておこうっと
[追記]

ちなみに、コード量で優勝したのは(予想通り)Ruby でした。
(1..75).to_a.shuffle.each{|x| p x}
さすが、まっつーLisp。 ストレートな感じが萌えポイントですね。


スポンサーサイト


Comments

Leave a Comment



10 2017
SUN MON TUE WED THU FRI SAT
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 - - - -

09

11


 
プロフィール

ひでたそ

Author:ひでたそ
Comment:
現役大学生で天文好き。
今日もどこかで、上を見ながら歩いています。

 
 
 
最新トラックバック
 
 
検索フォーム
 
 
 
ブロとも申請フォーム
 
QRコード
QRコード
 

Archive   RSS   Login

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。