\documentclass[11 pt,xcolor={dvipsnames,svgnames,x11names,table}]{beamer}

\usepackage[english]{babel} 
\usepackage{polski}         
\usepackage[skins,theorems]{tcolorbox}
\tcbset{highlight math style={enhanced,
  colframe=red,colback=white,arc=0pt,boxrule=1pt}}

\usetheme[
	bullet=circle,		% Other option: square
	bigpagenumber,		% circled page number on lower right
	topline=true,			% colored bar at the top of the frame 
	shadow=false,			% Shading for beamer blocks
	watermark=BG_lower,	% png file for the watermark
	]{Flip}

%\logo{\kern+1.em\includegraphics[height=1cm]{SHiP-3_LightCharcoal}}
                            

\usepackage[lf]{berenis}
\usepackage[LY1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{emerald}
\usefonttheme{professionalfonts}
\usepackage[no-math]{fontspec}		
\defaultfontfeatures{Mapping=tex-text}	% This seems to be important for mapping glyphs properly

\setmainfont{Gillius ADF}			% Beamer ignores "main font" in favor of sans font
\setsansfont{Gillius ADF}			% This is the font that beamer will use by default
% \setmainfont{Gill Sans Light}		% Prettier, but harder to read

\setbeamerfont{title}{family=\fontspec{Gillius ADF}}

\input t1augie.fd

%\newcommand{\handwriting}{\fontspec{augie}} % From Emerald City, free font
%\newcommand{\handwriting}{\usefont{T1}{fau}{m}{n}} % From Emerald City, free font
% \newcommand{\handwriting}{}	% If you prefer no special handwriting font or don't have augie

%% Gill Sans doesn't look very nice when boldfaced
%% This is a hack to use Helvetica instead
%% Usage: \textbf{\forbold some stuff}
%\newcommand{\forbold}{\fontspec{Arial}}

\usepackage{graphicx}
\usepackage[export]{adjustbox}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{colortbl}
\usepackage{mathrsfs} 			% For Weinberg-esque letters
\usepackage{cancel}				% For "SUSY-breaking" symbol
\usepackage{slashed}            % for slashed characters in math mode
\usepackage{bbm}                % for \mathbbm{1} (unit matrix)
\usepackage{amsthm}				% For theorem environment
\usepackage{multirow}			% For multi row cells in table
\usepackage{arydshln} 			% For dashed lines in arrays and tables
\usepackage{siunitx}
\usepackage{xhfill}
\usepackage{grffile}
\usepackage{textpos}
\usepackage{subfigure}
\usepackage{tikz}
\usepackage{hyperref}
%\usepackage{hepparticles}    
\usepackage[italic]{hepparticles}     

\usepackage{hepnicenames} 

% Drawing a line
\tikzstyle{lw} = [line width=20pt]
\newcommand{\topline}{%
  \tikz[remember picture,overlay] {%
    \draw[crimsonred] ([yshift=-23.5pt]current page.north west)
             -- ([yshift=-23.5pt,xshift=\paperwidth]current page.north west);}}



% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
\usepackage{tikzfeynman}		% For Feynman diagrams
\usetikzlibrary{arrows,shapes}
\usetikzlibrary{trees}
\usetikzlibrary{matrix,arrows} 				% For commutative diagram
% http://www.felixl.de/commu.pdf
\usetikzlibrary{positioning}				% For "above of=" commands
\usetikzlibrary{calc,through}				% For coordinates
\usetikzlibrary{decorations.pathreplacing}  % For curly braces
% http://www.math.ucla.edu/~getreuer/tikz.html
\usepackage{pgffor}							% For repeating patterns

\usetikzlibrary{decorations.pathmorphing}	% For Feynman Diagrams
\usetikzlibrary{decorations.markings}
\tikzset{
	% >=stealth', %%  Uncomment for more conventional arrows
	vector/.style={decorate, decoration={snake}, draw},
	provector/.style={decorate, decoration={snake,amplitude=2.5pt}, draw},
	antivector/.style={decorate, decoration={snake,amplitude=-2.5pt}, draw},
	fermion/.style={draw=gray, postaction={decorate},
		decoration={markings,mark=at position .55 with {\arrow[draw=gray]{>}}}},
	fermionbar/.style={draw=gray, postaction={decorate},
		decoration={markings,mark=at position .55 with {\arrow[draw=gray]{<}}}},
	fermionnoarrow/.style={draw=gray},
	gluon/.style={decorate, draw=black,
		decoration={coil,amplitude=4pt, segment length=5pt}},
	scalar/.style={dashed,draw=black, postaction={decorate},
		decoration={markings,mark=at position .55 with {\arrow[draw=black]{>}}}},
	scalarbar/.style={dashed,draw=black, postaction={decorate},
		decoration={markings,mark=at position .55 with {\arrow[draw=black]{<}}}},
	scalarnoarrow/.style={dashed,draw=black},
	electron/.style={draw=black, postaction={decorate},
		decoration={markings,mark=at position .55 with {\arrow[draw=black]{>}}}},
	bigvector/.style={decorate, decoration={snake,amplitude=4pt}, draw},
}

% TIKZ - for block diagrams, 
% from http://www.texample.net/tikz/examples/control-system-principles/
% \usetikzlibrary{shapes,arrows}
\tikzstyle{block} = [draw, rectangle, 
minimum height=3em, minimum width=6em]




\usetikzlibrary{backgrounds}
\usetikzlibrary{mindmap,trees}	% For mind map
\newcommand{\degree}{\ensuremath{^\circ}}
\newcommand{\E}{\mathrm{E}}
\newcommand{\Var}{\mathrm{Var}}
\newcommand{\Cov}{\mathrm{Cov}}
\newcommand\Ts{\rule{0pt}{2.6ex}}       % Top strut
\newcommand\Bs{\rule[-1.2ex]{0pt}{0pt}} % Bottom strut

\graphicspath{{images/}}	% Put all images in this directory. Avoids clutter.

% SOME COMMANDS THAT I FIND HANDY
% \renewcommand{\tilde}{\widetilde} % dinky tildes look silly, dosn't work with fontspec
%\newcommand{\comment}[1]{\textcolor{comment}{\footnotesize{#1}\normalsize}} % comment mild
%\newcommand{\Comment}[1]{\textcolor{Comment}{\footnotesize{#1}\normalsize}} % comment bold
%\newcommand{\COMMENT}[1]{\textcolor{COMMENT}{\footnotesize{#1}\normalsize}} % comment crazy bold
\newcommand{\Alert}[1]{\textcolor{Alert}{#1}} % louder alert
\newcommand{\ALERT}[1]{\textcolor{ALERT}{#1}} % loudest alert
%% "\alert" is already a beamer pre-defined
\newcommand*{\Scale}[2][4]{\scalebox{#1}{$#2$}}%

\def\Put(#1,#2)#3{\leavevmode\makebox(0,0){\put(#1,#2){#3}}}

\usepackage{gmp}
\usepackage[final]{feynmp-auto}

\usepackage[backend=bibtex,style=numeric-comp,firstinits=true]{biblatex}
\bibliography{bib}
\setbeamertemplate{bibliography item}[text]

\makeatletter\let\frametextheight\beamer@frametextheight\makeatother

% suppress frame numbering for backup slides
% you always need the appendix for this!
\newcommand{\backupbegin}{
	\newcounter{framenumberappendix}
	\setcounter{framenumberappendix}{\value{framenumber}}
}
\newcommand{\backupend}{
	\addtocounter{framenumberappendix}{-\value{framenumber}}
	\addtocounter{framenumber}{\value{framenumberappendix}} 
}


\definecolor{links}{HTML}{2A1B81}
%\hypersetup{colorlinks,linkcolor=,urlcolor=links}

% For shapo's formulas:
\def\lsi{\raise0.3ex\hbox{$<$\kern-0.75em\raise-1.1ex\hbox{$\sim$}}}
\def\gsi{\raise0.3ex\hbox{$>$\kern-0.75em\raise-1.1ex\hbox{$\sim$}}}
\newcommand{\lsim}{\mathop{\lsi}}
\newcommand{\gsim}{\mathop{\gsi}}
\newcommand{\wt}{\widetilde}
%\newcommand{\ol}{\overline}
\newcommand{\Tr}{\rm{Tr}}
\newcommand{\tr}{\rm{tr}}
\newcommand{\eqn}[1]{&\hspace{-0.7em}#1\hspace{-0.7em}&}
\newcommand{\vev}[1]{\rm{$\langle #1 \rangle$}}
\newcommand{\abs}[1]{\rm{$\left| #1 \right|$}}
\newcommand{\eV}{\rm{eV}}
\newcommand{\keV}{\rm{keV}}
\newcommand{\GeV}{\rm{GeV}}
\newcommand{\im}{\rm{Im}}
\newcommand{\disp}{\displaystyle}
\def\be{\begin{equation}}
\def\ee{\end{equation}}
\def\ba{\begin{eqnarray}}
\def\ea{\end{eqnarray}}
\def\d{\partial}
\def\l{\left(}
\def\r{\right)}
\def\la{\langle}
\def\ra{\rangle}
\def\e{{\rm e}}
\def\Br{{\rm Br}}
\def\fixme{{\color{red} FIXME!}}
\def\mc{{\color{Magenta}{MC}}}
\def\pdf{{\rm p.d.f.}}

\author{ {\fontspec{Trebuchet MS}Marcin Chrz\k{a}szcz} (Universit\"{a}t Z\"{u}rich)}
\institute{UZH}
\title[Random number generators and application]{Random number generators and application}
\date{\fixme}


\begin{document}
\tikzstyle{every picture}+=[remember picture]

{
\setbeamertemplate{sidebar right}{\llap{\includegraphics[width=\paperwidth,height=\paperheight]{bubble2}}}
\begin{frame}[c]%{\phantom{title page}} 
\begin{center}
\begin{center}
	\begin{columns}
		\begin{column}{0.9\textwidth}
			\flushright\fontspec{Trebuchet MS}\bfseries \Huge {Random number generators and application}
		\end{column}
		\begin{column}{0.2\textwidth}
		  %\includegraphics[width=\textwidth]{SHiP-2}
		\end{column}
	\end{columns}
\end{center}
	\quad
	\vspace{3em}
\begin{columns}
\begin{column}{0.44\textwidth}
\flushright \vspace{-1.8em} {\fontspec{Trebuchet MS} \Large Marcin Chrząszcz\\\vspace{-0.1em}\small \href{mailto:mchrzasz@cern.ch}{mchrzasz@cern.ch}}

\end{column}
\begin{column}{0.53\textwidth}
\includegraphics[height=1.3cm]{uzh-transp}
\end{column}
\end{columns}

\vspace{1em}
%		\footnotesize\textcolor{gray}{With N. Serra, B. Storaci\\Thanks to the theory support from M. Shaposhnikov, D. Gorbunov}\normalsize\\
\vspace{0.5em}
	\textcolor{normal text.fg!50!Comment}{Experimental Methods in Particle Physics, \\ 19 November, 2015}
\end{center}
\end{frame}
}


\begin{frame}\frametitle{Random and pseudorandom numbers}
  \begin{exampleblock}{John von Neumann:}                                                                                                                                                                                                                                                                                                
''Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin. For, as has been pointed out several times, there is no such thing as a random number — there are only methods to produce random numbers, and a strict arithmetic procedure of course is not such a method.''
        \end{exampleblock} 

$\color{PineGreen}\Rrightarrow$ Random number: a given value that is taken by a random variable $ \twoheadrightarrow$ by definition cannot be predicted.\\
%$\color{PineGreen}\Rrightarrow$ Sequence of random numbers $\twoheadrightarrow$ 
$\color{PineGreen}\Rrightarrow$ Sources of truly random numbers:
\begin{itemize}
\item Mechanical
\item Physical
\end{itemize}
$\color{PineGreen}\Rrightarrow$ Disadvantages of physical generators:
\begin{itemize}
\item To slow for typical applications, especially the mechanical ones!
\item Not stable; small changes in boundary conditions might lead to completely different results!
\end{itemize}


\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Random numbers - history remark}
$\color{PineGreen}\Rrightarrow$ In the past there were books with random numbers:
\begin{center}
\includegraphics[width=0.55\textwidth]{images/million-random-digits-open.jpg}
  \end{center}
$\color{PineGreen}\Rrightarrow$ It's obvious that they didn't become very popular ;)\\
$\color{PineGreen}\Rrightarrow$ This methods are comming back!\\
$\color{PineGreen}\twoheadrightarrow$ Storage device are getting more cheap and bigger (CD, DVD).\\
$\color{PineGreen}\twoheadrightarrow$ 1995: G. Marsaglia, $650\rm MB$ of random numbers, ''White and Black Noise''.


\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Pseudorandom numbers}
$\color{PineGreen}\Rrightarrow$ Pseudorandom numbers are numbers that are generated accordingly to strict mathematical formula. \\
$\color{PineGreen}\looparrowright$ Strictly speaking they are non random numbers, how ever they have all the statistical properties of random numbers.\\
$\color{PineGreen}\looparrowright$  Discussing those properties is a wide topic so let's just say that without knowing the formula they are generated by one cannot say if those numbers are random or not.\\
$\color{PineGreen}\Rrightarrow$  Mathematical methods of producing pseudorandom numbers:
\begin{itemize}
\item Good statistical properties of generated numbers.
\item Easy to use and fast!
\item Reproducible!
\end{itemize}
$\color{PineGreen}\Rrightarrow$ Since mathematical pseudorandom genrators are dominantly:  pseudorandom $\rightarrowtail$ random.


\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Middle square generator; von Neumann}
$\color{PineGreen}\Rrightarrow$  The first mathematical generator (middle square) was proposed by von Neumann (1964).\\{~}\\
$\color{PineGreen}\looparrowright$ Formula: $
\tcbhighmath[fuzzy halo=0.5mm with PineGreen!50!white,arc=0.1pt,
  boxrule=0pt,frame hidden]{ X_n= \lfloor X_{n-1}^2\cdot 10 ^{-m} \rfloor - \lfloor X_{n-1}^2\cdot 10^{-3m} \rfloor}
$

$\color{PineGreen}\looparrowright$ where $X_0$ is a constant (seed), $\lfloor\cdot\rfloor$ is the cut-off of a number to integer.\\
$\color{PineGreen}\Rrightarrow$  Example:\\
{~}{~}Let's put $m=2$ and $X_0=2045$:\\
\begin{columns}
\column{0.1\textwidth}
{~}
\column{0.4\textwidth}
$\color{PineGreen}\looparrowright$ $X_0^2=\underbrace{04}_{\rm rej}1820\underbrace{25}_{\rm rej}$
\column{0.3\textwidth}
 $\Rightarrow X_1=1820$
\end{columns}
\begin{columns}
\column{0.1\textwidth}
{~}
\column{0.4\textwidth}
$\color{PineGreen}\looparrowright$ $X_1^2=\underbrace{03}_{\rm rej}3124\underbrace{00}_{\rm rej}$
\column{0.3\textwidth}
 $\Rightarrow X_1=3124$
\end{columns}
$\color{PineGreen}\looparrowright$ Simple generator but unfortunately quite bad generator. Firstly the sequences are very short and strongly dependent on the $X_0$ number.



\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Linear generators}

$\color{PineGreen}\Rrightarrow$ General equation:
\begin{equation}
\tcbhighmath[fuzzy halo=0.5mm with PineGreen!50!white,arc=0.1pt,
  boxrule=0pt,frame hidden]{X_n=(a_1X_{n-1} + a_2X_{n-2}+...+a_kX_{n-k}+c)~{\rm mod}~m    ,} \nonumber
\end{equation}
$\color{PineGreen}\looparrowright$ where $a_i,c,m$ are parameters of a generator(integer numbers).\\
$\color{PineGreen}\looparrowright$  Generator initialization $\color{PineGreen} \rightleftarrows$ setting those parameters.\\
$\color{PineGreen}\Rrightarrow$ Very old generators. (often used in Pascal, or first C versions):
\begin{columns}
\column{0.1\textwidth}
{~}
\column{0.8\textwidth}
$k=1:~X_n=(aX_{n-1} +c )~{\rm mod} m,$
$c=
\begin{cases}
=0, {\rm multiplicative geneator}\\
\neq 0, {\rm mix geneator}
\end{cases}
$
\column{0.1\textwidth}
{~}


\end{columns}
$\color{PineGreen}\Rrightarrow$ The period can be achieved by tuning the seed parameters:\\
$P_{{\rm max}}=
\begin{cases}
2^{L-2};~{\rm for~} m=2^L\\
m-1;~{\rm for~} m= {\rm prime~number}
\end{cases}
$
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Linear generators; examples}

$\color{PineGreen}\Rrightarrow$ General equation:
\begin{equation}
\tcbhighmath[fuzzy halo=0.5mm with PineGreen!50!white,arc=0.1pt,
  boxrule=0pt,frame hidden]{X_n=(a_1X_{n-1} + a_2X_{n-2}+...+a_kX_{n-k}+c)~{\rm mod}~m    ,} \nonumber
\end{equation}
$\color{PineGreen}\looparrowright$ where $a_i,c,m$ are parameters of a generator(integer numbers).\\
$\color{PineGreen}\looparrowright$  Generator initialization $\color{PineGreen} \rightleftarrows$ setting those parameters.\\
$\color{PineGreen}\Rrightarrow$ Very old generators. (often used in Pascal, or first C versions):
\begin{columns}
\column{0.1\textwidth}
{~}
\column{0.8\textwidth}
$k=1:~X_n=(aX_{n-1} +c )~{\rm mod} m,$
$c=
\begin{cases}
=0, {\rm multiplicative~geneator}\\
\neq 0, {\rm mix~geneator}
\end{cases}
$
\column{0.1\textwidth}
{~}


\end{columns}
$\color{PineGreen}\Rrightarrow$ The period can be achieved by tuning the seed parameters:\\
$P_{{\rm max}}=
\begin{cases}
2^{L-2};~{\rm for~} m=2^L\\
m-1;~{\rm for~} m= {\rm prime~number}
\end{cases}
$
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Shift register generator}
\begin{small}
$\color{PineGreen}\Rrightarrow$ General equation:
\begin{equation}
\tcbhighmath[fuzzy halo=0.5mm with PineGreen!50!white,arc=0.1pt,
  boxrule=0pt,frame hidden]{b_n=(a_1X_{n-1} + a_2X_{n-2}+...+a_kX_{n-k}+c)~{\rm mod}~2    ,} \nonumber
\end{equation}
where $a_i \subset(\lbrace0,1\rbrace )$\\
$\color{PineGreen}\Rrightarrow$ Super fast and easy to implement due to: $(a+b) ~{\rm mod}~2 = a~{\rm xor}~b$
\begin{center}
\begin{tabular}{||c|c|c||}
\hline \hline a & b & a xor b\\ \hline
0 & 0 & 0\\
1 & 0 & 1\\
0 & 1 & 1\\
1 & 1 & 0\\ \hline \hline
\end{tabular}
\end{center}
$\color{PineGreen}\Rrightarrow$ Maximal period is $2^k-1$.\\
$\color{PineGreen}\Rrightarrow$ Example (Tausworths generator):\\
$a_p=a_q=1$, other $a_i=0$ and $p>q$. Then: $b_n=b_{n-p}~{\rm xor}~b_{n-q}$

$\color{PineGreen}\Rrightarrow$ How to get numbers from bits (for example):\\
$U_i = \sum_{j=1}^L 2^{-j} b_{is+j},~s<L$.

\end{small}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Fibonacci generator}
\begin{small}
$\color{PineGreen}\Rrightarrow$ In 1202 Fibonacci with Leonardo in Piza:
\begin{equation}
f_n=f_{n-2}+f_{n-1},~n\geqslant 2 \nonumber
\end{equation}
$\color{PineGreen}\Rrightarrow$ Based on this first generator was created (Taussky and Todd, 1956):
\begin{equation}
X_n=(X_{n-2}+X_{n-1})~{\rm mod}~m,~n\geqslant 2 \nonumber
\end{equation}
This generator isn't so good in terms of statistics tests.\\
$\color{PineGreen}\Rrightarrow$ Generalization:
\begin{equation}
X_n=(X_{n-r} \odot X_{n-s})~{\rm mod}~m,~n \geqslant r ,~s \geqslant 1 \nonumber
\end{equation}\begin{center}

\begin{tabular}{||c|c|c||}
\hline \hline $\bigodot$ & $P_{max}$ & Stat. properties \\ \hline
$+,-$ & $(2^r-1)2^{L-1}$ & good \\
$x$ & $(2^r-1)2^{L-13}$ & very good \\
$xor$ & $(2^r-1)$ & poor \\ \hline \hline 
\end{tabular}


\end{center}

\end{small}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Multiply with carry, generator}
\begin{small}


\end{small}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Subtract with borrow, generator}
\begin{small}


\end{small}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Non linear generators}
\begin{small}


\end{small}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}\frametitle{Non linear generators}
\begin{small}


\end{small}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%5
%% Stat tests$





\backupbegin   

\begin{frame}\frametitle{Backup}


\end{frame}

\backupend			

\end{document}
