生成工作表

生成工作表

我的目标是能够生成以下类别的工作表:

  1. 指数法则
  2. 联立线性方程和
  3. 二次方程

当我说生成时,指的是生成例如 20 个不同的问题。我认为我已经通过以下方式解决了这个问题:

 \newcommand{\questiontype}[1]{%
 \foreach \i in {1,...,#1}
 {
 \item $my question type$
 }}

不知何故,我相信它与问题有关使用 rand 选项创建随机问题

唯一的区别是代码中需要的限制。例如,考虑二次方程,有三类问题,即根相等、不同和虚数的问题。

我不是 pgf 和随机参数方面的专家。我在这里正在学习,希望各位专家能够帮助我。我的灵感来自计算与编程

我尚未开发任何代码,但已准备好学习。

编辑

为了更好地理解我的问题,请参阅下面的代码。

例如:

 \usepackage{lcg,calc,ifthen}

 % Une variable qui va servir
 \newcounter{det}

 \newcommand{\randomsys}{
 % Génerer 6 entiers dans [-20,20]
 \reinitrand[first=-20, last=20, counter=a] \rand
 \chgrand[counter=b] \rand
 \chgrand[counter=c] \rand
 \chgrand[counter=d] \rand
 \chgrand[counter=e] \rand
 \chgrand[counter=f] \rand
 % Remplacer 0 par 1000
 \ifthenelse{\value{a}=0}{\setcounter{a}{1000}}{}
 \ifthenelse{\value{b}=0}{\setcounter{b}{1000}}{}
 \ifthenelse{\value{d}=0}{\setcounter{d}{1000}}{}
 \ifthenelse{\value{e}=0}{\setcounter{e}{1000}}{}

 % Un énoncé selon la valeur du dét
 \setcounter{det}{\value{a}*\value{e}-\value{b}*\value{d}}
 \ifthenelse{\value{det}=0}%
 {Expliquer pourquoi le système suivant 
 n'admet pas une unique solution :}%
 {Résoudre le système suivant :}
 \[
 \left\lbrace \begin{array}{rcl} 
 \thea x+\theb y &=& \thec \\
 \thed x+\thee y &=& \thef
 \end{array} \right.
 \]}

 \randomsys \randomsys \randomsys \randomsys
 \randomsys \randomsys \randomsys \randomsys

上面的代码应该生成随机联立方程。因此,我的目标是理解每一行的含义、替代方法(例如使用 tikz 中的 pgfmath)以及代码中每个定义的含义。

最终我想学习如何基于上述原理创建随机问题。上面提到的主题(指标定律、四元方程和联立方程)只是参考样本。

答案1

如果没有更多详细信息,我不知道如何提供更多帮助。以下是对正在发生的事情的解释:

  1. 我定义\newcommand*{\Difficulty}{10}。此数字用于确定生成的随机数的范围。在本例中,将其设置为10,则随机数将是 范围内的实数1...10

  2. \pgfmathtruncatemacro用于设置一个宏,其中包含计算表达式的整数值。因此,\pgfmathtruncatemacro{\DenomDifficulty}{2*\Difficulty}将宏设置\DenomDifficulty为 中指定值的两倍\Difficulty。类似地,\pgfmathtruncatemacro{\Neum}{random(\Difficulty)}将宏设置\Neum为 返回的值random(\Difficulty)。由于random()提供了一个实值随机数1..10,并且(假设此处)我们只想要整数,因此必须使用\pgfmathtruncatemacro,而不是通常的\pgfmathsetmacro

  3. 类似地,对于\LinearSystem\QuadraticEquations宏来说,这只是生成更多随机数并在数学表达式中使用它们的问题。

  4. 您在问题中提到二次方程有三种情况:相等根、不同根和虚根。如果您只想生成具有相同类型根的方程组,则需要提供一种确保该类型根的算法。

    如果您不需要限制整数值,那么这是一个相当简单的情况。例如,要获得相等的根,您可以随机生成\A\B然后使用\C = (\B*\B)/(4*\A)。但是,这不一定是整数,因此您必须在此处包含所需的额外逻辑。

在此处输入图片描述

进一步改进:

  • 完成宏以仅生成具有不同实根和虚根的二次方程。
  • 也生成负数。在这种情况下,建议加入一些逻辑,以便我们不是最终结果+ -与问题中链接的示例一样。一种方法是生成另一个随机数,如果生成的随机数大于 0.6,0..1则使用-符号代替正负号+(或不使用符号,如前导数中所示)(假设您希望大约 40% 的问题带有负号,这也会根据年级控制难度级别)。
  • 自动将小数转换为约分。有关此问题,请参阅未来的问题随机二次方程,这增强了这里提出的解决方案。

代码:

\documentclass{article}
\usepackage{mathtools}
\usepackage{enumitem}
\usepackage{tikz}

\newcommand*{\Difficulty}{10}%

\newcommand{\FracQuestion}[1]{%
    \foreach \i in {1,...,#1}{%
      \pgfmathtruncatemacro{\DenomDifficulty}{2*\Difficulty}%
      \pgfmathtruncatemacro{\Neum}{random(\Difficulty)}
      \pgfmathtruncatemacro{\Denom}{random(\DenomDifficulty)}
      \item $\dfrac{\Neum}{\Denom}$%
    }%
}%

\newcommand{\LinearSystem}[1]{%
    \foreach \i in {1,...,#1}{%
      \pgfmathtruncatemacro{\Xa}{random(\Difficulty)}%
      \pgfmathtruncatemacro{\Ya}{random(\Difficulty)}%
      \pgfmathtruncatemacro{\Za}{random(\Difficulty)}%
      \pgfmathtruncatemacro{\Xb}{random(\Difficulty)}%
      \pgfmathtruncatemacro{\Yb}{random(\Difficulty)}%
      \pgfmathtruncatemacro{\Zb}{random(\Difficulty)}%
      \item $\begin{cases}\begin{aligned}%
                \Xa x + \Ya y &= \Za \\%
                \Xb x + \Yb y &= \Zb \\%
              \end{aligned}\end{cases}$%
    }%
}%

\newcommand{\QuadraticEquations}[1]{%
    \foreach \i in {1,...,#1}{%
      \pgfmathtruncatemacro{\A}{random(\Difficulty)}%
      \pgfmathtruncatemacro{\B}{random(\Difficulty)}%
      \pgfmathtruncatemacro{\C}{random(\Difficulty)}%
      \item $\A x^2 + \B x + \C = 0$%
    }%
}%

\newcommand{\QuadraticEquationsEqualRoots}[1]{%
    \foreach \i in {1,...,#1}{%
      \pgfmathtruncatemacro{\A}{random(\Difficulty)}%
      \pgfmathtruncatemacro{\B}{random(\Difficulty)}%
      \pgfmathsetmacro{\C}{(\B*\B)/(4*\A)}%
      \item $\A x^2 + \B x + \C = 0$%
    }%
}%



\begin{document}
\section{Random Fractions:}
\begin{enumerate}
  \FracQuestion{3}
\end{enumerate}
%
\section{Random 2x2 Linear Equations:}
\begin{enumerate}
  \LinearSystem{3}
\end{enumerate}
%
\section{Random Quadratic Equations:}
\begin{enumerate}
  \QuadraticEquations{3}
\end{enumerate}
%
\section{Random Quadratic Equations (Equal Roots):}
\begin{enumerate}
  \QuadraticEquationsEqualRoots{3}
\end{enumerate}
\end{document}

相关内容