肴楽宴お疲れ様でした

[雑記]
前回と比べて人が来なくて、11時ごろまで「もしや誰も来ないのでは!?」とガクブルしていましたが。
まあ、少人数でもまったりできていいやね。夢紀行面白いなぁ

次回はいっそVISIONの大会でもやろうかと検討中。萃符伝?人集まるかな


tbsの日記より
>そのいち

>http://ameblo.jp/akihabara48/entry-10075346906.html
>AKB48は、このたびニューシングル発売にあたってプロモ活動を展開しております。
>その一環として、シングル購入者に特典としてポスター配布を決定いたしました!ポスターはなんと全44種類!ちなみに、ランダムで配布されるのであらかじめ指定はできませんので悪しからず。さらに!全44種類をコンプリートされた方には、なんとスペシャルライブ、AKB48春の祭典」にご招待いたします!

>問題
>ポスターはすべて同様に確からしく入手できるとする。シングルは1枚税込1600円。さて、「春の祭典」に行くためにはいくら貢げばいいのか、期待値をもとめなさい。

解答

以下をコンパイルする。適当に書いたので最適化とかはしてません。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>



 int ofuse(void);

int main(void)
{
   int a,sougaku;
	double heikin;

 srand(time(NULL));       /* 乱数の初期化 */

   sougaku=0;

   for(a=0; a<10000; ++a){
	   sougaku=sougaku+ofuse();}
	
   heikin=sougaku/10000;

	   printf("平均%f\n", heikin);

	return 0;
}

int ofuse(void){

	 int     n=0;
	 float   rnd=0.0;
	 int clear=0;
	 int i=0;
	 int ii=0;
	 int poster[44]={0,0,0,0,0,
		 0,0,0,0,0,
		 0,0,0,0,0,
		 0,0,0,0,0,
		 0,0,0,0,0,
		 0,0,0,0,0,
		 0,0,0,0,0,
		 0,0,0,0,0,
		 0,0,0,0};


   
    for(i = 0; clear<44 ; ++i){
        rnd = (float)rand() / 32768.0;     /* 1未満の乱数計算 */
		rnd=rnd*44;	//44未満の数に拡大
		n=(int)rnd;	//浮動小数点を整数に型変換、nは0-43の整数

			if(poster[n]==0) poster[n]=1;
			else ;
		
			clear=
			poster[0]+poster[1]+poster[2]+poster[3]+poster[4]+poster[5]+poster[6]+poster[7]+poster[8]+poster[9]
			+poster[10]+poster[11]+poster[12]+poster[13]+poster[14]+poster[15]+poster[16]+poster[17]+poster[18]+poster[19]+
			poster[20]+poster[21]+poster[22]+poster[23]+poster[24]+poster[25]+poster[26]+poster[27]+poster[28]+poster[29]+
			poster[30]+poster[31]+poster[32]+poster[33]+poster[34]+poster[35]+poster[36]+poster[37]+poster[38]+poster[39]+
			poster[40]+poster[41]+poster[42]+poster[43];
	
			//printf("clearの内部数値は%d\n", clear);
    }
	printf("%d\n", i);

	return i;

}

コマンドプロンプトから実行すると、一万回試行した後に平均値を表示します。
だいたい192-193回ほどでコンプリートできるよ!  できるよ!

つまり、必要なお賽銭は
1,600*193=308,800
となります。

行けるやついるのか?