在 xsim 中保存随机数用于解决方案

在 xsim 中保存随机数用于解决方案

我正在尝试创建带有随机数和的练习表xsim。但是,每次生成随机数时,变量都会被覆盖以创建新的练习(期望),但也会被覆盖,以便所有解决方案仅包含来自最终练习的值(不希望)。

在生成解决方案时,如何“保存”它们的值?

我知道这可能有点类似于我之前的一个帖子,但我尝试遵循\edef...那里的语法建议,但似乎不起作用。

\documentclass{article}

\usepackage{multicol}

\usepackage{pgf}

\usepackage{pgffor}
    \pgfmathsetseed{\number\pdfrandomseed}

\usepackage{xsim}

\setlength{\parindent}{0pt}


\newcommand{\InitVariables}
    {   \pgfmathrandominteger{\PartA}{0}{10}
            \edef\PartA{\PartA}
        \pgfmathrandominteger{\PartB}{0}{10}
            \edef\PartB{\PartB}
        \pgfmathsetmacro{\Sum}{int(\PartA + \PartB)}
            \edef\Sum{\Sum}
        }

\newcommand{\Exercise}{$\PartA+\PartB=?$}

\newcommand{\Solution}{$\PartA+\PartB=\Sum$}

\begin{document}

\begin{multicols}{2}


\InitVariables
\begin{exercise}
    \Exercise
    \end{exercise}

\begin{solution}
    \Solution
    \end{solution}


\InitVariables
\begin{exercise}
    \Exercise
    \end{exercise}

\begin{solution}
    \Solution
    \end{solution}

\printallsolutions

\end{multicols}

\end{document}

在此处输入图片描述

答案1

您只需添加一个计数器并使用该计数器创建唯一的宏名称。此计数器需要在之前重置\printallsolutions

\documentclass{article}

\usepackage{multicol}

\usepackage{pgf}

\usepackage{pgffor}
    \pgfmathsetseed{\number\pdfrandomseed}

\usepackage{xsim}

\setlength{\parindent}{0pt}
\newcounter{myex}

\newcommand{\InitVariables}{%
       \stepcounter{myex}%
       \pgfmathrandominteger{\PartA}{0}{10}%
       \expandafter\edef\csname PartA\number\value{myex}\endcsname{\PartA}%
       \pgfmathrandominteger{\PartB}{0}{10}%
       \expandafter\edef\csname PartB\number\value{myex}\endcsname{\PartB}%
       \pgfmathsetmacro{\Sum}{int(\PartA + \PartB)}%
       \expandafter\edef\csname Sum\number\value{myex}\endcsname{\Sum}%
        }

\newcommand{\Exercise}{$\csname PartA\number\value{myex}\endcsname+\csname PartB\number\value{myex}\endcsname=?$}

\newcommand{\Solution}{\stepcounter{myex}%
$\csname PartA\number\value{myex}\endcsname+\csname PartB\number\value{myex}\endcsname=
\csname Sum\number\value{myex}\endcsname$}

\begin{document}

\begin{multicols}{2}


\InitVariables
\begin{exercise}
    \Exercise
    \end{exercise}

\begin{solution}
    \Solution
    \end{solution}


\InitVariables
\begin{exercise}
    \Exercise
\end{exercise}

\begin{solution}
    \Solution
\end{solution}

\setcounter{myex}{0}
\printallsolutions
\end{multicols}

\end{document}

在此处输入图片描述

相关内容