発言者: tDB
発言日: 2007 04/05 16:49
発言元: 210.131.52.1
\Iransuuretu の利用例として,
係数を乱数で定める二次方程式の例を作ってみましたが,
実際に生徒に与えるとなると,
10問のうち
初めの3題は整数解
次の3題は分数解
(この2種では,解を乱数で設定して係数を計算)
次の2題は実数解
残りが虚数解
(この2種は乱数で係数列を定める)
などときめ細かに作るのが望ましいでしょうかね。
\documentclass{jarticle}
\usepackage[perl]{emathRn}
\def\dpQeq#1#2#3{% 二次方程式を表示するサブルーティン(係数処理--0,±1の場合--が面倒)
% 係数の最大公約数を求め
\saidaikouyakusuu{#1}{#2}\tmp
\saidaikouyakusuu{\tmp}{#3}\yakusuu
% それで割ることで
\IDiv{#1}\yakusuu\akeisuu
\IDiv{#2}\yakusuu\bkeisuu
\IDiv{#3}\yakusuu\ckeisuu
% x^2, xの係数,定数項が互いに素となるようにする
%
\ifnum\akeisuu=1% x^2 の係数が1の場合非表示
\else\ifnum\akeisuu=-1 % -1の場合は "-" のみ表示
-
\else
\akeisuu% その他の場合はそのまま表示
\fi\fi
x^2
\ifnum\bkeisuu>0\relax% x の係数が正の場合は"+"を補う
+\ifnum\bkeisuu=1\else\bkeisuu\fi
x
\else\ifnum\bkeisuu=0\relax% 0の場合はスキップ
\else
\ifnum\bkeisuu=-1\relax% -1の場合は"-"のみ表示
-
\else
\bkeisuu% その他の場合はそのまま係数表示
\fi
x
\fi\fi
\ifnum\ckeisuu>0\relax+\ckeisuu% 定数項が正の場合は"+"を補う
\else\ifnum\ckeisuu=0% 0の場合はスキップ
\else\ckeisuu% その他の場合はそのまま表示
\fi\fi
=0
}
\begin{document}
% 乱数列の用意
\Iransuuretu[19]{40}\kekka% 二次方程式の係数を -9〜9 の整数としたいため
% 0〜19(未満) の整数値乱数を発生させ,9を引こうという算段
% 乱数列の長さ 40 には特に意味はありません。
% この例では5問ですから,係数は 5×3=15 で足りますが,
% x^2の係数が0になる場合を考慮して多めに設定
\begin{enumerate}[(1)]
\Cfor{\edef\ban{0}}{\ban<5}{\Incr\ban}\do{% 問題数を5問とする。
%用意した乱数列から,係数を切り出す
\Cfor{\edef\aval{9}}{\aval=9}{}\do{% x^2の係数は0ではいけないという制約
\Strsep\kekka{,}\aval\kekka
}%
\ISub\aval{9}\aval% x^2の係数
\Strsep\kekka{,}\bval\kekka
\ISub\bval{9}\bval% xの係数
\Strsep\kekka{,}\cval\kekka
\ISub\cval{9}\cval% 定数項などを \Strsep で用意した乱数列から切り出す
%問題の表示
\item
$\dpQeq{\aval}{\bval}{\cval}$% 二次方程式を表示する
\vfill
}
\end{enumerate}
\end{document}
▼関連発言
│
└◆5870:方程式問題自動作成の方法 [boo] 04/03 12:06
└◆5871:Re:方程式問題自動作成の方法 [石原 守] 04/03 12:52
└◆5872:Re[2]:方程式問題自動作成の方法 [boo] 04/03 14:18
└◆5873:Re[3]:方程式問題自動作成の方法 [石原 守] 04/03 14:32
└◆5874:Re[4]:方程式問題自動作成の方法 [boo] 04/03 14:50
├◆5876:--- [---] 04/03 19:38
└◆5877:Re[5]:方程式問題自動作成の方法 [石原 守] 04/03 19:56
└◆5878:Re[6]:方程式問題自動作成の方法 [boo] 04/03 22:23
└◆5883:Re[7]:方程式問題自動作成の方法 [石原 守] 04/04 05:26
├◆5892:Re[8]:方程式問題自動作成の方法 [boo] 04/04 12:02
│├◆5904:--- [---] 04/08 16:33
│└◆5905:Re[9]:方程式問題自動作成の方法 [石原 守] 04/14 10:32
│ └◆5906:Re[10]:方程式問題自動作成の方法 [tDB] 04/14 13:24
│ ├◆5907:Re[11]:方程式問題自動作成の方法 [石原 守] 04/14 13:41
│ │└◆5909:Re[12]:方程式問題自動作成の方法 [tDB] 04/14 15:32
│ │ ├◆5910:Re[13]:方程式問題自動作成の方法 [石原 守] 04/14 16:07
│ │ └◆5911:Re[13]:方程式問題自動作成の方法 [石原 守] 04/14 19:32
│ │ └◆5912:Re[14]:方程式問題自動作成の方法 [tDB] 04/14 19:39<-last
│ └◆5908:Re[11]:方程式問題自動作成の方法 [石原 守] 04/14 13:45
└◆5898:Re[8]:方程式問題自動作成の方法 [石原 守] 04/05 08:11
└◆5899:Re[9]:方程式問題自動作成の方法 [tDB] 04/05 16:04
├◆5900:Re[10]:方程式問題自動作成の方法 [石原 守] 04/05 16:16
│└◆5902:Re[11]:方程式問題自動作成の方法 [tDB] 04/05 17:20
└◆5901:Re[10]:方程式問題自動作成の方法 [tDB] 04/05 16:49
└◆5903: 補足 [tDB] 04/06 09:32