Horner-Schema mit tabellarischer

Horner-Schema mit tabellarischer

Ich weiß, dass es einen Standardcode für ein Horner-Schema gibt. Aber ich hätte gerne die folgende Tabelle.

Bildbeschreibung hier eingeben

Ich habe den nächsten Code, kann aber nicht herausfinden, wie ich diese kleine vertikale Linie unten rechts hinbekomme.

\begin{tabular}{c|cccc}  
        & 3 & 2 & -5 & -10 \\   
    &   &   &    &     \\ \hline  
        &   &   &    &    
\end{tabular}  

Dazu habe ich noch eine Frage. Die Zahl 11 ist jetzt etwas nach links verschoben, ich möchte aber, dass sie unter 16 liegt.

\begin{tabular}{c|cccc}  
  & 3 & 2 & -5 & -10 \\   
  2 & $\downarrow$  & 6  & 16    & 22   \\ \hline  
  & 3  & 8  &  11   \multicolumn{1}{c|}{}  & 12   
\end{tabular}

Antwort1

\documentclass{article}
\begin{document}
  $\begin{array}{c|cccc}
        & 3 & 2 & -5 & -10 \\
    &   &   &    &     \\ \hline
        &   &   & \multicolumn{1}{c|}{}   &
\end{array}$
\end{document}

Bildbeschreibung hier eingeben

Wenn Sie möchten, dass es dick ist,

\documentclass{article}
\usepackage{array}
\begin{document}
  $\begin{array}{c|cccc}
        & 3 & 2 & -5 & -10 \\
    &   &   &    &     \\ \hline
        &   &   &    & \multicolumn{1}{!{\vrule width 1.5pt}c}{}
\end{array}$
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Nur zum Spaß: ein Makro, das auch die Koeffizienten berechnet (nur ganze Zahlen zulässig).

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\horner}{smm}
 {
  \IfBooleanTF{#1}
   { \bool_set_false:N \l_silke_show_bool }
   { \bool_set_true:N \l_silke_show_bool }
  \silke_horner:nn { #2 } { #3 }
 }

\bool_new:N \l_silke_show_bool
\seq_new:N \l_silke_top_seq
\seq_new:N \l_silke_middle_seq
\seq_new:N \l_silke_bottom_seq
\seq_new:N \l_silke_temp_seq
\int_new:N \l_silke_degree_int
\tl_new:N \l_silke_remainder_tl

\cs_new_protected:Npn \silke_horner:nn #1 #2
 {
  \seq_set_split:Nnn \l_silke_top_seq { , } { #1 }
  \int_set:Nn \l_silke_degree_int { \seq_count:N \l_silke_top_seq }
  \seq_clear:N \l_silke_middle_seq
  \seq_clear:N \l_silke_bottom_seq
  \seq_put_right:Nn \l_silke_middle_seq { \downarrow }
  \seq_put_right:Nx \l_silke_bottom_seq
   {
    \int_to_arabic:n { \seq_item:Nn \l_silke_top_seq { 1 } }
   }
  \int_step_inline:nnnn { 2 } { 1 } { \l_silke_degree_int }
   {
    \seq_put_right:Nx \l_silke_middle_seq
     {
      \int_to_arabic:n { \seq_item:Nn \l_silke_bottom_seq { ##1 - 1 } * #2 }
     }
    \seq_put_right:Nx \l_silke_bottom_seq
     {
      \int_to_arabic:n
       {
        \seq_item:Nn \l_silke_top_seq { ##1 }
        +
        \seq_item:Nn \l_silke_middle_seq { ##1 }
       }
     }
   }
  \silke_print_scheme:n { #2 }
 }

\cs_new_protected:Npn \silke_print_scheme:n #1
 {
  \bool_if:NF \l_silke_show_bool
   {
    \silke_phantom:N \l_silke_middle_seq
    \silke_phantom:N \l_silke_bottom_seq
   }
  \seq_pop_right:NN \l_silke_bottom_seq \l_silke_remainder_tl
  \begin{array}{r | *{\l_silke_degree_int}{r} }
     & \seq_use:Nn \l_silke_top_seq { & } \\
  #1 & \seq_use:Nn \l_silke_middle_seq { & } \\
  \hline
     & \seq_use:Nn \l_silke_bottom_seq { & } & 
       \multicolumn{1}{@{\vline width 1pt}r}{\l_silke_remainder_tl}
  \end{array}
 }

\cs_new_protected:Npn \silke_phantom:N #1
 {
  \seq_clear:N \silke_temp_seq
  \seq_map_inline:Nn #1 { \seq_put_right:Nn \silke_temp_seq { \phantom{##1} } }
  \seq_set_eq:NN #1 \silke_temp_seq
 }

\ExplSyntaxOff

\begin{document}

$\horner{3,2,-5,-10}{2}$

$\horner*{3,2,-5,-10}{2}$

$\horner{1,5,10,10,5,1}{-1}$

\end{document}

Die *-Variante reserviert nur den Platz, druckt aber nicht die Zahlen in der mittleren und unteren Zeile.

Bildbeschreibung hier eingeben

verwandte Informationen