emath BBS

新規発言一覧最新記事過去一覧検索HOME

No.5901  Re[10]:方程式問題自動作成の方法
発言者: 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

Pass 保存


CGIROOM