当我将数组转换为方程式时,如何获得标准形式?

当我将数组转换为方程式时,如何获得标准形式?

我有一个数组,我想将此数组转换为带有答案的a & b & c & d & e & f & g形式。egreg 帮助我编写了此代码。非常感谢。sqrt{a x + b} + sqrt{c x + d} = eS=\{f,g\}

\documentclass[,a4paper,12pt]{article}
\usepackage{fouriernc}
\usepackage[unicode]{hyperref}
\usepackage{amsmath}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{longtable}

\makeatletter
\newcommand{\changearray}[1]{%
  \begingroup
  \gdef\@changearraybody{}%
  \makerow#1\relax
  \begin{longtable}{@{}ll@{}}
  \@changearraybody
  \end{longtable}
  \endgroup
}
\makeatletter
\def\makerow{\@ifnextchar\relax{}{\@makerow}}
\def\@makerow#1&#2&#3&#4&#5&#6&#7\\{%
  \g@addto@macro\@changearraybody{%
  $\sqrt{\@checkone{#1}x+#2}-\sqrt{\@checkone{#3}x+#4}=#5$
  &
  \hfill  Answer. $S=\{#6,#7 \}$ 
  \\}
  \makerow
}
\def\@checkone#1{\edef\next{\zap@space#1 \@empty}\ifx\next\@fixedone\else#1\fi}
\def\@fixedone{1}
\makeatother

\begin{document}
\section{All negative coeffients}
\changearray{-10 & -6 & -9 & -8 & 1 & -33 & -1 
  \\}
How can I obmit the sign $+$ in front of the  sign $-$? And then, we get
\[\sqrt{-10x-6}+\sqrt{-9x-8}=1.\]
\section{$a=-1$ or $c=-1$}
\changearray{-1 & -6 & -9 & 8 & 1 & -3 & -1 
  \\}
How can I obmit  the  number $1$ in front of the  sign $-$? and get $\sqrt{-x-6}+\sqrt{-9x+8}=1$
\section{$b=0$ or $d=0$}
 \changearray{ -1 & 0 & 1 & 2 & 2 & -1 & 7
   \\}
   How to get
   \[\sqrt{-x}+\sqrt{x+2}=2\]
\end{document}

但有些情况我无法解决。

  1. 第一种情况。所有负系数,例如 -10 & -6 & -9 & -8 & 1 & -33 & -1,我得到

在此处输入图片描述

我怎样才能得到该形式的方程式?

在此处输入图片描述

  1. 第二种情况 a = -1或者c=-1

我用过\changearray{-1 & -6 & -9 & 8 & 1 & -3 & -1 \\}。我得到了

在此处输入图片描述

我怎样才能得到该形式的方程式?

在此处输入图片描述

  1. 第三种情况 b = 0或者d = 0

我用过 \changearray{ -1 & 0 & 1 & 2 & 2 & -1 & 7 \\},我得到了

在此处输入图片描述

我怎样才能得到该形式的方程式?

在此处输入图片描述

答案1

您可以使用\checkval宏。我的代码直接打印方程式(没有数字表等),因此您可以根据需要进行修改。

\def\changearray#1{\changearrayA #1\\\\\end}
\def\changearrayA#1\\{\ifx\end#1\end \changearrayC \else 
   \endgraf$\changearrayB#1&$\endgraf \expandafter\changearrayA \fi}
\def\changearrayB#1&#2&#3&#4&#5&#6&#7&{%
    \sqrt{\checkval{#1} =1:{}, =-1:{-}, =#1:{#1},; x
          \checkval{#2} =0:{}, <0:{#2}, =#2:{+#2},;}
   -\sqrt{\checkval{#3} =1:{}, =-1:{-}, =#3:{#3},; x
          \checkval{#4} =0:{}, <0:{#4}, =#4:{+#4},;}
   =#5 \quad \hbox{Answer. } S = \{#6,#7\}. 
}
\def\changearrayC#1\end{\fi}
\def\checkval#1{\def\tmp{#1}\let\next=\checkvalA \checkvalA}
\def\checkvalA #1:#2,{\ifnum \tmp#1 #2\def\next##1;{}\fi \next}

\changearray{-10 & -6 & -9 & -8 & 1 & -33 & -1 \\
              -1 & -6 & -9 & 8 & 1 & -3 & -1 \\
              -1 & 0 & 1 & 2 & 2 & -1 & 7}

相关内容