From charlesreid1

m (Replacing charlesreid1.com:3000 with git.charlesreid1.com)
 
(8 intermediate revisions by the same user not shown)
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 problems===
==Git Code Repository==
 
Code: https://git.charlesreid1.com/charlesreid1/tripos-bot


this just got a whole lot easier... Gutenberg offers a TeX version of Hardy's Course of Pure Mathematics:
==Latex==


https://www.gutenberg.org/ebooks/38769
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:
This means the problems appear like this:


<pre>
<pre>
\Item{18.} If $a$, $b$, $x$, $y$ are rational numbers such that
If $a$, $b$, $x$, $y$ are rational numbers such that
\[
\[
(ay - bx)^{2} + 4(a - x)(b - y) = 0,
(ay - bx)^{2} + 4(a - x)(b - y) = 0,
Line 33: Line 41:
</pre>
</pre>


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


Task list for Tripos Bot:
===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}
 
\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>


Task 1: Tripos problems into Latex.
=Planning=


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


Task 3: Latex to jpg script and templating solution
{{Main|2018/January}}


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


===timing===
Task list:
** <s>Work out small page latex</s>
** <s>Get questions into latex format</s>
** <s>Script to compile latex to pdf, Imagemagick latex to jpg</s>
** <s>Create Rainbow Mind Machine bot</s>
** <s>Fix up rainbow mind machine image tweets</s>
** <s>Write custom Sheep for daily tweet schedule from image directory</s>
** Create Twitter account
** Authenticate
** Set up and run on Rojo


See how long it takes to complete, put yourself on a deadline.
Timeline:


Task 1: How long to extract all tripos problems? few minutes (15 minutes)
Task 1: Extracting all tripos problems into Latex. 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: Compile Latex to pdf, ImageMagick pdf to jpg. Set up templating system for Latex. 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=


[[Category:2018]]
[[Category:2018]]

Latest revision as of 03:59, 9 October 2019

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://git.charlesreid1.com/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

Task list:

    • Work out small page latex
    • Get questions into latex format
    • Script to compile latex to pdf, Imagemagick latex to jpg
    • Create Rainbow Mind Machine bot
    • Fix up rainbow mind machine image tweets
    • Write custom Sheep for daily tweet schedule from image directory
    • Create Twitter account
    • Authenticate
    • Set up and run on Rojo

Timeline:

Task 1: Extracting all tripos problems into Latex. 25 minutes

Task 3A: Compile Latex to pdf, ImageMagick pdf to jpg. Set up templating system for Latex. 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