随机生成

随机生成

我正在尝试随机生成一个具有整数系数的平方方程。像这样3x^2 - 6x + 8 = 0 但我希望它们也有整数根,所以生成根然后产生系数会更聪明。我想出了这个

\pgfmathsetmacro{\x}{random(1,9)*((random(0,1)==0)?-1:1)}
\pgfmathsetmacro{\y}{random(1,8)*((random(0,1)==0)?-1:1)}
\pgfmathsetmacro{\a}{random(1,9)*((random(0,1)==0)?-1:1)}
\pgfmathsetmacro{\b}{-\a*(\x+\y)}
\pgfmathsetmacro{\c}{\a*\x*\y}

$$\a x^2 + \b x + \c = 0$$

这里有几个问题:

  1. 它看起来像 8.0,而不是 8。

  2. 当它产生负数时,我得到的是+ -9.0x而不是-9x。我也可以生成随机符号吗?我试过了,但没有成功。

  3. 显然,最好使用 x 而不是 1x。如果结果为 1,有没有办法删除 1?
  4. 嗯,主要思想当然是生成线性和二次方程和不等式(例如带参数的方程和不等式。$4ax^2 -5x + 6a = 0 $因为我不太理解这个代码随机二次方程 有人可以解释一下或者至少演示一下如何重新制作它吗?

生成系数的能力很重要,因为之后你可以做所有的事情。生成诸如 $3sin(x)^2 - 5sinx + 8 = 0$ 之类的东西

答案1

以下是针对您提出的一些问题的快速解决方案。

\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\begin{document}
\pgfmathtruncatemacro{\x}{random(1,9)*((random(0,1)==0)?-1:1)}
\pgfmathtruncatemacro{\y}{random(1,8)*((random(0,1)==0)?-1:1)}
\pgfmathtruncatemacro{\a}{random(1,9)*((random(0,1)==0)?-1:1)}
\pgfmathtruncatemacro{\b}{-\a*(\x+\y)}
\newcommand{\myb}{\ifnum\b>0
+\b x
\else
\ifnum\b<0
\b x
\fi
\fi
}
\pgfmathtruncatemacro{\c}{\a*\x*\y}
\newcommand{\myc}{\ifnum\c>0
+\c
\else
\ifnum\c<0
\c 
\fi
\fi
}
\[\a x^2 \myb  \myc = 0\]
\end{document}

在此处输入图片描述

相关内容