计算平均值等

计算平均值等

我正在将 Word 文档翻译成 LaTeX,作为一种学习体验。现在有这个表,它已经有硬编码值。但是,我想让它通用,这样更改 .tex 文件中的单个数字就会更改列的行数。所有值都是根据行的键通过以下算法计算的。

给定一个实数,计算一个骰子(6 面)的数字和一个整数修正值,该修正值不大于 +- 3。期望值修改后的掷骰子结果应等于输入数字,且误差不高于 0.5。使算法具有确定性。

可以这样做吗?请提出进一步的阅读建议。

类似这样的内容:

[dice, mod] foo(expected)
    dice = floor(expected / 3.5)
    mod = floor(expected - dice * 3.5)

但是,如果有一种算法能够平衡正负修正的使用,那就更好了。此外,妥善处理低于 3.5 的值也很好(始终至少包含一个骰子)。

例如,12 将输出 3 个骰子 +1 个修正值,总预期值为 11.5。

源表是这样的,但不必严格遵循。

在此处输入图片描述

答案1

这就是你的目标吗?

动态表

\documentclass[12pt]{article}
\usepackage{xintfrac}
\usepackage{xintexpr}

\begin{document}\thispagestyle{empty}

    % dice = floor(expected / 3.5)
    % mod = floor(expected - dice * 3.5)

\def\rows {12}

\begin{tabular}{ccc}
  \hline
  expected & dice & mod \\
  \hline
  \xintFor* #1 in {\xintSeq {1}{\rows}}
  \do
  { #1 & \xinttheexpr floor(#1 / 3.5)\relax 
     & \xinttheexpr floor(#1 - floor(#1/3.5)*3.5)\relax \\ }
  \hline
\end{tabular}

% \begin{tabular}{ccc}
%   $*1$&$*2/3$&$*1/2$\\
%   \xintFor* #1 in {\xintSeq {1}{30}}
%   \do
%   {$#1$&$\xintRound {4}{\xintMul {#1}{2/3}}$&$\xintRound {2}{\xintMul {#1}{1/2}}$\\}
% \end{tabular}

\end{document}

我不确定是否理解得很好。这是我的第一个答案中的表格(上面的代码被注释掉了)。

动态表

\documentclass[12pt]{article}
\usepackage{xintfrac}

\begin{document}\thispagestyle{empty}

\begin{tabular}{ccc}
  $*1$&$*2/3$&$*1/2$\\
  \xintFor* #1 in {\xintSeq {1}{30}}
  \do
  {$#1$&$\xintRound {4}{\xintMul {#1}{2/3}}$&$\xintRound {2}{\xintMul {#1}{1/2}}$\\}
\end{tabular}

\end{document}

如果行数太多,一页无法容纳,则可以使用 longtable,或者TeX原始的\halign

相关内容