小学校5年生程度の算数の問題を20問ほど自動生成するものを作成してみた。
製作時間は5分ほど。
echo "<table>";
$subtotal = 1;
while( $subtotal <= 20 ) {
// 割る数
$div_int = mt_rand(2, 98);
$div_few = mt_rand(2, 8);
$div = $div_int . "." . $div_few;
// 割られる数
$int = mt_rand(1, 98);
$few = mt_rand(2, 8);
$num = $int . "." . $few;
// 解答
$ans = $num/$div;
// 判定(答え1以上で6桁以下)
if( $ans >= "1" && strlen($ans) < 6 && $ans != "1" ){
$subtotal = sprintf('%02d', $subtotal);
echo "<tr><td><b>$subtotal</b></td><td>" . $num . "</td><td> ÷ </td><td>" . $div . "</td><td> = <span style=\"color: #fff; \">$ans</span></td></tr>";
$subtotal++;
}
}
echo "</table>";
問題集っぽいものを作ってくれと言われたが、考えるのが面倒なのでちょっと組んだ。
小数点の計算をひたすら生成してくれる。
答えは文字反転で見えるようにしているが、少し改造して虫食いタイプの問題も生成出来るようにしておきたい気がしてきた。
関連記事