如何在 LaTeX 中计算 n 模 3?

如何在 LaTeX 中计算 n 模 3?

我不想显示模数符号,我想以编程方式计算 n 模 3 并显示结果。

答案1

您还可以\intcalcMod使用计算包裹:

\documentclass{article}
\usepackage{amsmath}
\usepackage{ifthen}
\usepackage{intcalc}

\newcounter{mycount}
\newcommand\Nmodiii[1]{%
\setcounter{mycount}{0}\whiledo{\value{mycount}<#1}
  {$\themycount\pmod 3=\intcalcMod{\value{mycount}}{3}$\\\stepcounter{mycount}}
}
\begin{document}

\noindent A little example: $8\pmod 3=\intcalcMod{8}{3}$

\noindent And a little loop:\\
\Nmodiii{20}

\end{document}

在此处输入图片描述

评论中发布的链接中出现的代码有一些虚假的空白,导致第一行出现不必要的缩进;这里是更正后的版本:

\documentclass{article}
\usepackage{ifthen}
\usepackage{forloop}
\usepackage{fmtcount}
\usepackage{intcalc}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}
\newcounter{i}
\noindent\forloop{i}{1}{\value{i} < 101}{%
    \ifthenelse{\equal{\intcalcMod{\value{i}}{15}}{0}}{
        FizzBuzz
    }{%
        \ifthenelse{\equal{\intcalcMod{\value{i}}{3}}{0}}{
            Fizz
        }{%
            \ifthenelse{\equal{\intcalcMod{\value{i}}{5}}{0}}{
                Buzz
            }{%
                \thei
            }
        }
    }\\
}
\end{multicols}
\end{document}

答案2

有几个使用不同软件包的不错的答案。我想指出的是,TeX 使用整数算术,因此很容易编写标准公式 a-(a/b)*b,其中 / 表示整数除法。

普通 TeX 解决方案:

\newcount\tmpcnta
\def\modulo#1#2{\tmpcnta=#1
        \divide\tmpcnta by #2
        \multiply\tmpcnta by #2
        \multiply\tmpcnta by -1
        \advance\tmpcnta by #1\relax
        \the\tmpcnta}
\modulo{17}{3}
\modulo{19}{3}
\bye

LaTeX 解决方案:

\documentclass{article} 
\makeatletter
\newcommand\modulo[2]{\@tempcnta=#1
        \divide\@tempcnta by #2
        \multiply\@tempcnta by #2
        \multiply\@tempcnta by -1
        \advance\@tempcnta by #1\relax
        \the\@tempcnta}
\makeatother
\begin{document} 
\modulo{17}{3}
\modulo{19}{3}
\end{document}

答案3

“可扩展”版本,使用 e-TeX 的\numexpr

\def\truncdiv#1#2{((#1-(#2-1)/2)/#2)}
\def\moduloop#1#2{(#1-\truncdiv{#1}{#2}*#2)}
\def\modulo#1#2{\number\numexpr\moduloop{#1}{#2}\relax}

\truncdiv并且\moduloop可以插入到其他表达式中。这样做是必要的,因为\numexpr执行圆形整数除法。

答案4

LaTeX3(该expl3包)也具有计算模量(模量?)的工具,即\int_mod:nn

\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\newcommand{\mymod}[2]{\int_mod:nn{#1}{#2}}
\ExplSyntaxOff
\begin{document}
  The residue of $45$ modulo $19$ is $\mymod{45}{19}$.
\end{document}

相关内容