2009年1月25日

久々にエクセルを嬲る(珠算1級問題を作る) その2

 息子から苦情がきた。例の算盤の問題集だ。
 
 息子が言うには,
  わり算の答えは,同じ数字が続くことは滅多にない。
  模試や問題集ではちょくちょくあるんだけど,先生は,問題の作り方が下手だ,と言う。
  本番の検定試験の問題では,絶対じゃないけど,滅多にない。
のだそうだ・・・

 具体的に言うと,6桁の値を構成する数字はすべて異ならなければならない,と言うことだ。

 確率的には,前の桁と異なる数字となる確率は,9/10=0.9であり,それが5回続かなければならないから
       1  2  3  4  5  6
          0.9 0.9 0.9 0.9 0.9 =0.9^5=0.59049
となる。
 つまり,6桁の値ですべての桁が異なる数字である確率は,0.6だ。

 で,20問すべての商の値がすべて,桁の異なる数字である確率となれば,
   0.6^20=3.65615844006297E-05=0.00003656158・・・・
 まあ,3万回に1回,と言うことになる。
 
 

 これは難問だ・・・
 ほんとだろうか,と思って確かめてみたら,確かに,第169回から第171回までの検定試験の問題では,すべてクリアしている。
 この検定料は,1回2000円だそうだ。
 一方で,880円の1級の問題集の方は,8回中2回しかクリアしていない。
 
 補数の出現やround()の端数処理を考え合わせると,この確率はさらに2桁下がる。
 
 さすがに問題1枚作る為に,エクセルで300万回のシュミレーションをやる気にはならないので,方針転換をせざるを得ない。
 いまでさえ,1秒に3回ほどしかループが回らない(ユーザ定義関数の使いすぎ)ので,300万回のループには100万秒,すなわち,11日ほどかかる計算になる。
 (画面表示を停止すれば多少は速くなるが,私は,コンピュータが働いている姿を見るのが好きなのだ。ループのカウンタも付けたし・・・) 
 
 と言うわけで,商を人為的に固定してから割る値を乱数で決め,割られる数は,商と割る値を掛けて出すことにした。
 (今までは,商の値は乱数で固定していた。)
 
 商のパターンは,一応3個(上の検定試験の値)用意した。
 
 とはいえ,算盤の計算の論理を知らないので,この方法で作成した問題になれることで,変な癖が付いてしまうのではないか,いまいち不安が残るのである・・・