From charlesreid1

No edit summary
Line 1: Line 1:
===original notes===
=Overview=


Code: https://charlesreid1.com:3000/charlesreid1/tripos-bot
The Tripos Bot posts really, really difficult math problems. The source of these problems is the Cambridge Mathematics Tripos, principally drawn from those presented by G. H. Hardy in his work <u>A Course of Pure Mathematics</u>, available on Gutenberg: https://www.gutenberg.org/ebooks/38769
 
=Notes=
 
==Concept==


Tripos bot:
Tripos bot:
Line 9: Line 13:
* Depending on number of Tripos problems: can definitely find 52, but not sure if I can find 365
* Depending on number of Tripos problems: can definitely find 52, but not sure if I can find 365
* If we can find 365, then one per day...
* If we can find 365, then one per day...
==Source Material==


Hardy's Course of Pure Mathematics:
Hardy's Course of Pure Mathematics:
Line 16: Line 22:
* https://books.google.com/books?id=awMAAAAAQAAJ&printsec=frontcover&dq=cambridge+mathematics+tripos&hl=en&sa=X&ved=0ahUKEwiY85ufqsjYAhUL_4MKHWBtALA4FBDoAQgnMAA#v=onepage&q=cambridge%20mathematics%20tripos&f=false
* https://books.google.com/books?id=awMAAAAAQAAJ&printsec=frontcover&dq=cambridge+mathematics+tripos&hl=en&sa=X&ved=0ahUKEwiY85ufqsjYAhUL_4MKHWBtALA4FBDoAQgnMAA#v=onepage&q=cambridge%20mathematics%20tripos&f=false


===latex===
==Git Code Repository==
 
Code: https://charlesreid1.com:3000/charlesreid1/tripos-bot
 
==Latex==


Gutenberg offers a Latex version of Hardy's Course of Pure Mathematics: https://www.gutenberg.org/ebooks/38769
Gutenberg offers a Latex version of Hardy's Course of Pure Mathematics: https://www.gutenberg.org/ebooks/38769
Line 31: Line 41:
</pre>
</pre>


There are a few macros from the Latex version that need to be included when the problems are compiled with Latex, but we'll get to that in a moment.
There are a few macros from the Latex version that need to be included when the problems are compiled with Latex.
 
===Sample Latex Problem===
 
Each problem is relatively minimal as far as Latex code. Here is an example problem:
 
<pre>
Sum the series
\[
\frac{x}{2! \DPchg{n - 2!}{(n - 2)!}}
  + \frac{x^{2}}{5! \DPchg{n - 5!}{(n - 5)!}}
  + \frac{x^{3}}{8! \DPchg{n - 8!}{(n - 8)!}} + \dots
  + \frac{x^{n/3}}{\DPchg{n - 1!}{(n - 1)!}},
\]
$n$~being a multiple of~$3$. \MathTrip{1899.}
</pre>
 
This uses a macro <code>\DPchng</code> that must be defined. This and other macros drawn from the Gutenberg version of the book are included in the main Latex template, which is used as a wrapper around each problem's minimal Latex code.
 
Here is the template:
 
<pre>
\documentclass[]{article}
\usepackage{blindtext}
\usepackage{amsmath}
\usepackage[active, tightpage]{preview}
\setlength\PreviewBorder{10pt}%
\pagenumbering{gobble}
 
\newcommand{\btw}{\mathbin{)\kern-5pt(}}
\newcommand{\dd}{\partial}
\newcommand{\tsum}{{\textstyle\sum}}
\newcommand{\ds}{\displaystyle}
\renewcommand{\limsup}{\varlimsup}
\renewcommand{\liminf}{\varliminf}
 
%% Named operators
\DeclareMathOperator{\ArcCos}{arc\,cos}
\DeclareMathOperator{\ArcCosec}{arc\,cosec}
\DeclareMathOperator{\ArcCot}{arc\,cot}
\DeclareMathOperator{\ArcSec}{arc\,sec}
\DeclareMathOperator{\ArcSin}{arc\,sin}
\DeclareMathOperator{\ArcTan}{arc\,tan}
\DeclareMathOperator{\cosec}{cosec}
\DeclareMathOperator{\sech}{sech}
\DeclareMathOperator{\cosech}{cosech}
 
\DeclareMathOperator{\argcosh}{arg\,cosh}
\DeclareMathOperator{\argcoth}{arg\,coth}
\DeclareMathOperator{\argsinh}{arg\,sinh}
\DeclareMathOperator{\argtanh}{arg\,tanh}
 
\newcommand{\arccosec}{\ArcCosec}
\newcommand{\arccot}{\ArcCot}
\newcommand{\arcsec}{\ArcSec}


===planning===
\renewcommand{\arccos}{\ArcCos}
\renewcommand{\arcsin}{\ArcSin}
\renewcommand{\arctan}{\ArcTan}
 
\DeclareMathOperator{\Cis}{Cis}
\DeclareMathOperator{\Log}{Log}
\DeclareMathOperator{\sgn}{\textit{sgn}\,}
\DeclareMathOperator{\am}{am}
 
\DeclareMathOperator{\Real}{\mathbf{R}}
\DeclareMathOperator{\Imag}{\mathbf{I}}
\renewcommand{\Re}{\Real}
\renewcommand{\Im}{\Imag}
 
%%% % Handle degree symbols and centered dots as Latin-1 characters
%%% \DeclareInputText{176}{\ifmmode{{}^\circ}\else\textdegree\fi}
%%% \DeclareInputText{183}{\ifmmode\cdot\else\textperiodcentered\fi}
 
% Local spacing coercion
\newcommand{\Loosen}{\spaceskip 0.375em plus 0.75em minus 0.25em}
% Used only once, to coax a wide display into the text block
\newcommand{\Squeeze}[2][0.98]{\scalebox{#1}[1]{#2}}
 
% Allow \quad to compress a bit
\let\oldquad=\quad
\renewcommand{\quad}{\oldquad\hspace{0pt minus 3pt}}
 
\newcommand{\Medskip}{\vspace{0pt plus 0.5\baselineskip}}
 
%% Parametrized vertical space %%
\newcommand{\Strut}[1][12pt]{\rule{0pt}{#1}}
 
%%%% Corrections and in-line transcriber's notes %%%%
% In-line notes
\newcommand{\DPnote}[1]{}
% Errors
\newcommand{\DPtypo}[2]{#2}
 
%%%% Notational modernizations %%%%
% ** If \epsilon -> \varepsilon, figures p117 and p176 must be recompiled
 
 
 
% Modernize TRUE
% Stylistic changes made for clarity or consistency
  \newcommand{\DPchg}[2]{#2}
  \newcommand{\Add}[1]{#1}
 
% Modernize notation
  \newcommand{\DPmod}[2]{#2}
 
% ** Incarnations of \sqrt; see below for significance
  \newcommand{\sqrtp}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\sqrtb}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\sqrtbr}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\bigsqrt}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\bigsqrtb}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\bigsqrtp}[2][\ ]{\sqrt[#1]{#2}}
 
% Exchange delta, epsilon in the definition of limits
  \newcommand{\DELTA}{\epsilon}
  \newcommand{\EPSILON}{\delta}
 
% Add visual delimiters to large integers/long decimals
  \newcommand{\MC}{,}%  "Math comma"
  \newcommand{\MS}{\,}% "Math space"
 
 
%%%
%%% % Modernize FALSE
%%%  \newcommand{\DPchg}[2]{#1}
%%%  \newcommand{\Add}[1]{}
%%%  \newcommand{\DPmod}[2]{#1}
%%%  % Use surd sign...
%%%  \let\oldsqrt=\sqrt%
%%%  \renewcommand*{\sqrt}[2][\ ]{\oldsqrt[#1]{\vphantom{|}}#2}
%%%  % ... with parentheses or curly braces around radicand
%%%  \newcommand{\sqrtp}[2][\ ]{\sqrt[#1]{(#2)}}
%%%  \newcommand{\sqrtb}[2][\ ]{\sqrt[#1]{\{#2\}}}
%%%  \newcommand{\sqrtbr}[2][\ ]{\sqrt[#1]{\,[#2]}}
%%%  \newcommand{\bigsqrt}[2][\ ]{\oldsqrt[#1]{\vphantom{#2}}#2}
%%%  \newcommand{\bigsqrtb}[2][\ ]{\oldsqrt[#1]{\vphantom{\bigg|}}\left\{#2\right\}}
%%%  \newcommand{\bigsqrtp}[2][\ ]{\oldsqrt[#1]{\vphantom{#2}}\!\!\left(#2\right)}
%%%
%%%  \newcommand{\DELTA}{\delta}
%%%  \newcommand{\EPSILON}{\epsilon}
%%% % Don't add visual delimiters to large integers/long decimals
%%%  \newcommand{\MC}{}
%%%  \newcommand{\MS}{}
 
 
\newcommand{\MathTrip}[1]{%
  \pagebreak[0]%
  \hfil\allowbreak\null\nobreak\hfill\nobreak\mbox{(\textit{Math.\ Trip.}\ #1)}%
  \pagebreak[1]%
}
 
\begin{document}
\begin{preview}
\input{FILENAME}
\end{preview}
\end{document}
</pre>
 
=Planning=
 
==January 2018==


Task list for Tripos Bot:
Task list for Tripos Bot:
Line 45: Line 215:
Task 4: Rainbow mind machine, ability to tweet multimedia images
Task 4: Rainbow mind machine, ability to tweet multimedia images


===timing===
Actual timeline:
 
See how long it takes to complete, put yourself on a deadline.


Task 1: How long to extract all tripos problems? few minutes (15 minutes)
Task 1: How long to extract all tripos problems? 25 minutes


Task 2: Keep it simple, define bot items as a single image, same text different images each time (15-20 minutes)
Task 3A: Latex to jpg is easy using convert, so main difficulty is templating system. Use sed and <code>\input{FILENAME}</code>. 25 minutes


Task 3: Latex to jpg is easy using convert, so main difficulty is templating system. Use sed and <code>\input{FILENAME}</code>. (30 minutes)
Task 3B: Fix Latex errors, broken macros, etc. 60 minutes


Task 4: Will take some experimenting, but pretty sure Rainbow Mind Machine has multimedia tweeting already. (15-20 minutes)
Task 2: Keep it simple, define bot items as a single image, same text different images each time (TBA)


Can we finish Tripos bot in 1.5 hours?
Task 4: Will take some experimenting, but pretty sure Rainbow Mind Machine has multimedia tweeting already (TBA)


===flags===
===flags===

Revision as of 07:51, 12 January 2018

Overview

The Tripos Bot posts really, really difficult math problems. The source of these problems is the Cambridge Mathematics Tripos, principally drawn from those presented by G. H. Hardy in his work A Course of Pure Mathematics, available on Gutenberg: https://www.gutenberg.org/ebooks/38769

Notes

Concept

Tripos bot:

  • Tweets one problem per week
  • One image per problem
  • Images come from Latex, rendered with "index card" class, converted to image (one-time, offline)
  • Depending on number of Tripos problems: can definitely find 52, but not sure if I can find 365
  • If we can find 365, then one per day...

Source Material

Hardy's Course of Pure Mathematics:

  • Around 210 Tripos problems - still need another 150 or so.

This should round it out:

Git Code Repository

Code: https://charlesreid1.com:3000/charlesreid1/tripos-bot

Latex

Gutenberg offers a Latex version of Hardy's Course of Pure Mathematics: https://www.gutenberg.org/ebooks/38769

This means the problems appear like this:

If $a$, $b$, $x$, $y$ are rational numbers such that
\[
(ay - bx)^{2} + 4(a - x)(b - y) = 0,
\]
then either (i)~$x = a$, $y = b$ or (ii)~$1 - ab$ and~$1 - xy$ are squares of rational
numbers. \MathTrip{1903.}

There are a few macros from the Latex version that need to be included when the problems are compiled with Latex.

Sample Latex Problem

Each problem is relatively minimal as far as Latex code. Here is an example problem:

Sum the series
\[
\frac{x}{2! \DPchg{n - 2!}{(n - 2)!}}
  + \frac{x^{2}}{5! \DPchg{n - 5!}{(n - 5)!}}
  + \frac{x^{3}}{8! \DPchg{n - 8!}{(n - 8)!}} + \dots
  + \frac{x^{n/3}}{\DPchg{n - 1!}{(n - 1)!}},
\]
$n$~being a multiple of~$3$. \MathTrip{1899.}

This uses a macro \DPchng that must be defined. This and other macros drawn from the Gutenberg version of the book are included in the main Latex template, which is used as a wrapper around each problem's minimal Latex code.

Here is the template:

\documentclass[]{article}
\usepackage{blindtext}
\usepackage{amsmath}
\usepackage[active, tightpage]{preview}
\setlength\PreviewBorder{10pt}%
\pagenumbering{gobble}

\newcommand{\btw}{\mathbin{)\kern-5pt(}}
\newcommand{\dd}{\partial}
\newcommand{\tsum}{{\textstyle\sum}}
\newcommand{\ds}{\displaystyle}
\renewcommand{\limsup}{\varlimsup}
\renewcommand{\liminf}{\varliminf}

%% Named operators
\DeclareMathOperator{\ArcCos}{arc\,cos}
\DeclareMathOperator{\ArcCosec}{arc\,cosec}
\DeclareMathOperator{\ArcCot}{arc\,cot}
\DeclareMathOperator{\ArcSec}{arc\,sec}
\DeclareMathOperator{\ArcSin}{arc\,sin}
\DeclareMathOperator{\ArcTan}{arc\,tan}
\DeclareMathOperator{\cosec}{cosec}
\DeclareMathOperator{\sech}{sech}
\DeclareMathOperator{\cosech}{cosech}

\DeclareMathOperator{\argcosh}{arg\,cosh}
\DeclareMathOperator{\argcoth}{arg\,coth}
\DeclareMathOperator{\argsinh}{arg\,sinh}
\DeclareMathOperator{\argtanh}{arg\,tanh}

\newcommand{\arccosec}{\ArcCosec}
\newcommand{\arccot}{\ArcCot}
\newcommand{\arcsec}{\ArcSec}

\renewcommand{\arccos}{\ArcCos}
\renewcommand{\arcsin}{\ArcSin}
\renewcommand{\arctan}{\ArcTan}

\DeclareMathOperator{\Cis}{Cis}
\DeclareMathOperator{\Log}{Log}
\DeclareMathOperator{\sgn}{\textit{sgn}\,}
\DeclareMathOperator{\am}{am}

\DeclareMathOperator{\Real}{\mathbf{R}}
\DeclareMathOperator{\Imag}{\mathbf{I}}
\renewcommand{\Re}{\Real}
\renewcommand{\Im}{\Imag}

%%% % Handle degree symbols and centered dots as Latin-1 characters
%%% \DeclareInputText{176}{\ifmmode{{}^\circ}\else\textdegree\fi}
%%% \DeclareInputText{183}{\ifmmode\cdot\else\textperiodcentered\fi}

% Local spacing coercion
\newcommand{\Loosen}{\spaceskip 0.375em plus 0.75em minus 0.25em}
% Used only once, to coax a wide display into the text block
\newcommand{\Squeeze}[2][0.98]{\scalebox{#1}[1]{#2}}

% Allow \quad to compress a bit
\let\oldquad=\quad
\renewcommand{\quad}{\oldquad\hspace{0pt minus 3pt}}

\newcommand{\Medskip}{\vspace{0pt plus 0.5\baselineskip}}

%% Parametrized vertical space %%
\newcommand{\Strut}[1][12pt]{\rule{0pt}{#1}}

%%%% Corrections and in-line transcriber's notes %%%%
% In-line notes
\newcommand{\DPnote}[1]{}
% Errors
\newcommand{\DPtypo}[2]{#2}

%%%% Notational modernizations %%%%
% ** If \epsilon -> \varepsilon, figures p117 and p176 must be recompiled



% Modernize TRUE
% Stylistic changes made for clarity or consistency
  \newcommand{\DPchg}[2]{#2}
  \newcommand{\Add}[1]{#1}

% Modernize notation
  \newcommand{\DPmod}[2]{#2}

% ** Incarnations of \sqrt; see below for significance
  \newcommand{\sqrtp}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\sqrtb}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\sqrtbr}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\bigsqrt}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\bigsqrtb}[2][\ ]{\sqrt[#1]{#2}}
  \newcommand{\bigsqrtp}[2][\ ]{\sqrt[#1]{#2}}

% Exchange delta, epsilon in the definition of limits
  \newcommand{\DELTA}{\epsilon}
  \newcommand{\EPSILON}{\delta}

% Add visual delimiters to large integers/long decimals
  \newcommand{\MC}{,}%  "Math comma"
  \newcommand{\MS}{\,}% "Math space"


%%% 
%%% % Modernize FALSE
%%%   \newcommand{\DPchg}[2]{#1}
%%%   \newcommand{\Add}[1]{}
%%%   \newcommand{\DPmod}[2]{#1}
%%%   % Use surd sign...
%%%   \let\oldsqrt=\sqrt%
%%%   \renewcommand*{\sqrt}[2][\ ]{\oldsqrt[#1]{\vphantom{|}}#2}
%%%   % ... with parentheses or curly braces around radicand
%%%   \newcommand{\sqrtp}[2][\ ]{\sqrt[#1]{(#2)}}
%%%   \newcommand{\sqrtb}[2][\ ]{\sqrt[#1]{\{#2\}}}
%%%   \newcommand{\sqrtbr}[2][\ ]{\sqrt[#1]{\,[#2]}}
%%%   \newcommand{\bigsqrt}[2][\ ]{\oldsqrt[#1]{\vphantom{#2}}#2}
%%%   \newcommand{\bigsqrtb}[2][\ ]{\oldsqrt[#1]{\vphantom{\bigg|}}\left\{#2\right\}}
%%%   \newcommand{\bigsqrtp}[2][\ ]{\oldsqrt[#1]{\vphantom{#2}}\!\!\left(#2\right)}
%%% 
%%%   \newcommand{\DELTA}{\delta}
%%%   \newcommand{\EPSILON}{\epsilon}
%%% % Don't add visual delimiters to large integers/long decimals
%%%   \newcommand{\MC}{}
%%%   \newcommand{\MS}{}


\newcommand{\MathTrip}[1]{%
  \pagebreak[0]%
  \hfil\allowbreak\null\nobreak\hfill\nobreak\mbox{(\textit{Math.\ Trip.}\ #1)}%
  \pagebreak[1]%
}

\begin{document}
\begin{preview}
\input{FILENAME}
\end{preview}
\end{document}

Planning

January 2018

Task list for Tripos Bot:

Task 1: Tripos problems into Latex.

Task 2: Rainbow mind machine, using list of images and/or .json to define bot items

Task 3: Latex to jpg script and templating solution

Task 4: Rainbow mind machine, ability to tweet multimedia images

Actual timeline:

Task 1: How long to extract all tripos problems? 25 minutes

Task 3A: Latex to jpg is easy using convert, so main difficulty is templating system. Use sed and \input{FILENAME}. 25 minutes

Task 3B: Fix Latex errors, broken macros, etc. 60 minutes

Task 2: Keep it simple, define bot items as a single image, same text different images each time (TBA)

Task 4: Will take some experimenting, but pretty sure Rainbow Mind Machine has multimedia tweeting already (TBA)

flags