%%
\documentclass[12pt]{article}
\usepackage[pdftex, pdfmark]{hyperref}
\usepackage[polish]{babel}
\usepackage{multicol}
\usepackage[MeX]{polski}
%\usepackage[latin2]{inputenc}
%\usepackage[cp1250]{inputenc}
\usepackage[utf8]{inputenc}
%\usepackage[utf8x]{inputenc}
\usepackage[intlimits]{amsmath}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage[a4paper]{geometry} 
\pagestyle{fancy}
\lhead{ \today}
\rhead{ }
\chead{  Podstawy programowania: {\em Mathematica } }
\rfoot{ https://ribes.if.uj.edu.pl/mathematica/ }
\cfoot{}
\lfoot{ andrzej.odrzywolek@uj.edu.pl }
\renewcommand{\headrulewidth}{3pt}
\renewcommand{\footrulewidth}{0.5pt}
\renewcommand{\fboxrule}{2pt}


\begin{document}

\title{Generator liczb wymiernych}
\date{\today}
\maketitle


Celem zadania jest napisanie programu generującego \textit{wszystkie}
\textbf{różne} liczby wymierne $r$ postaci:
$$
r =\frac{m}{n},
$$
gdzie licznik $m$ i mianownik $n$ są mniejsze od zadanych z góry
liczb naturanych $N,M$:
$$
m<M, \; n<N
$$
\textbf{bez powtórzeń}. Wyrażenia typu $\frac{2}{4}$ i $\frac{1}{2}$
uznajemy za jedną i tą samą liczbę wymierną.

Program powinien mieć trzy tryby pracy:
\begin{enumerate}
\item generowanie listy wszystkich szukanych ułamków 
(możliwości działania w tym trybie są ograniczane ilością pamięci)
\item generowanie ułamków jeden po drugim
\item losowe generowanie ułamków
\item funkcja zwracająca $i$-ty ułamek zgodnie z pewnym założonym 
przez autora programu porządkiem
\end{enumerate}

\begin{thebibliography}{6}
\bibitem{wiki1} \href{https://en.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree}{https://en.wikipedia.org/wiki/Stern-Brocot\_tree}
\bibitem{wiki2} \href{https://en.wikipedia.org/wiki/Farey_sequence}{https://en.wikipedia.org/wiki/Farey\_sequence}
\bibitem{knuth} Donald E. Knuth, \textit{Sztuka Programowania. Tom 4. Zeszyt 2. Generowanie Wszystkich Krotek i Permutacji },
Wydawnictwa Naukowo-Techniczne, 2007.
\end{thebibliography}



\end{document}
