  This paper is intended to be a brief and accessible introduction to the range
variant of asymmetric numeral systems (ANS), a system for lossless compression
of sequences which can be used as a drop in replacement for arithmetic coding
(AC). Because of the relative simplicity of ANS, we are able to provide enough
mathematical detail to rigorously prove that ANS attains a compression rate
close to the Shannon limit. Pseudo-code, intuitive interpretation and diagrams
are given alongside the mathematical derivations. A working Python demo which
accompanies this tutorial is available at
https://raw.githubusercontent.com/j-towns/ans-notes/master/rans.py.
