【エンピツ転がし・続】 「ランダムに回答した場合の,FP3級の得点」の平均値を計算してみた


FP3級にでたらめな回答をしたら合格できるのか,という記事の続き。

 

前回の記事で,合格の確率は「万が一」ということだった。

今回は,得点は何点取れるのか?を計算してみた。

確率の計算による結論:

・FP3級の学科試験に,でたらめに回答した場合の得点率:

 41.6 %
 
つまり,エンピツを転がしても,4割以上は取れる。

※もし4割取れなかったら,鉛筆に負けているということになる。


・FP3級の実技試験は全て3択なので,実技の得点の期待値はいずれも

 33.3 %


・ちなみに合格基準点は6割。

なかなか驚愕の結論だが,ここまで易しい試験とは・・・。

 

しかし,

  • 平均点が41点にもかかわらず,60点取れる確率は万に一つ」

というのは,確率のマジックだ。

この計算を行なうためのプログラムを下記に掲載。

前回と同じく,下記のコードを「fuga.js」で保存してダブルクリックするだけ。

/*

	FP3級の試験に,でたらめな回答で
	何点取れるのか?を計算するプログラム
	
	学科+実技(FP協会・きんざい)
	それぞれ算出。

*/


// 和をとる
function sigma( func, n_start, n_end ){
	var sum = 0;
	for( var i = n_start; i <= n_end; i ++ ){
		sum += func( i );
	}
	return sum;
}

// C,組み合わせ
function combination( a, b ){
	return permutation( a, b ) / factorial( b );
}


// P,順列
function permutation( a, b ){
	return factorial( a ) / factorial( a - b );
}

// !,階乗
function factorial( n ){
	return ( n <= 1 ) ? 1 : n * factorial( n - 1 );
}


// a択のテストをq問受けてそれぞれランダムに解答し,n問正解する確率
function prob_seikei_number( a, q, n ){
	return (
		combination( q, n ) 
			* Math.pow( ( 1 / a ), n ) 
			* Math.pow( ( ( a - 1 ) / a ), q - n )
	);
}


function log(s){
	WScript.Echo(s);
}


// a1 択のテストを q1 問受けてランダムに回答し,同時に
// a2 択のテストを q2 問受けてランダムに回答し,
// あわせてk問正解する確率
function prob_two_tests( a1, q1, a2, q2, k ){
	var prob = 0;

	for( var k1 = 0; k1 <= k; k1 ++ ){
		var k2 = k - k1;
		
		prob += (
			prob_seikei_number( a1, q1, k1 ) 
			* 
			prob_seikei_number( a2, q2, k2 )
		);
	}
	
	return prob;
}



// でたらめに回答すると,平均して何点取れるのか?


// 2択のテストを30問と3択のテストを30問受け,
// すべてランダムに回答した場合に,
// 正解できる問題数の期待値
var avg_gakka = sigma(
	function(n){
		return n * prob_two_tests( 2, 30, 3, 30, n );
	},
	0,
	60
);
log( avg_gakka ); // 25.0
log( avg_gakka / 60); // 0.416 →鉛筆転がしても4割取れる




// 2択のテストを30問受け,
// すべてランダムに回答した場合に,
// 正解できる問題数の期待値
var avg_gakka_zenhan = sigma(
	function(n){
		return n * prob_seikei_number( 2, 30, n );
	},
	0,
	30
);
log( avg_gakka_zenhan ); // 15.0
log( avg_gakka_zenhan / 30 ); // 0.5 →正誤問題は確率的に半分取れる



// 3択のテストを30問受け,
// すべてランダムに回答した場合に,
// 正解できる問題数の期待値
var avg_gakka_kouhan = sigma(
	function(n){
		return n * prob_seikei_number( 3, 30, n );
	},
	0,
	30
);
log( avg_gakka_kouhan ); // 9.99
log( avg_gakka_kouhan / 30 ); // 0.33 →三択問題は3分の一は取れる




// 3択のテストを20問受け,
// すべてランダムに回答した場合に,
// 正解できる問題数の期待値
var avg_jitsugi_fpkyokai = sigma(
	function(n){
		return n * prob_seikei_number( 3, 20, n );
	},
	0,
	20
);
log( avg_jitsugi_fpkyokai ); // 6.66
log( avg_jitsugi_fpkyokai / 20 ); // 0.33 →三択なので3分の一は取れる




// 3択のテストを15問受け,
// すべてランダムに回答した場合に,
// 正解できる問題数の期待値
var avg_jitsugi_kinzai = sigma(
	function(n){
		return n * prob_seikei_number( 3, 15, n );
	},
	0,
	15
);
log( avg_jitsugi_kinzai ); // 5.0
log( avg_jitsugi_kinzai / 15 ); // 0.33 →三択なので3分の一は取れる




/*

確率の計算による結論:

・FP3級の学科試験に,でたらめに回答した場合の得点率:

 41.6 %
 
つまり,エンピツを転がしても,4割以上は取れる。

※もし4割取れなかったら,鉛筆に負けているということになる。


・FP3級の実技試験は全て3択なので,実技の得点の期待値はいずれも

 33.3 %


・ちなみに合格基準点は6割。

*/

参考:

期待値
http://www.geisya.or.jp/~mwm48961/kou3/probability4.htm

  • 変数×確率の積を作る. x_k p_k
  • それらの合計が期待値

数式で計算

正誤問題は,確率的に半分は取れる。つまり30問中15問。

3択問題は3分の1は取れる。30問中10問。

あわせて,60問中の25問。

これを得点率に直すと,41.6%になるということ。