a
´iüz ã @ sü d Z ddlmZ ddlmZmZm Z
mZm
Z ddlmZmZmZmZ ddlmZmZ ddlmZ ddlmZ m!Z" ddl#m$Z%m&Z' dd l(m(Z) dd
lZ*dd
l+Z+zddl,m-Z, W n e.yÊ ddl/m-Z, Y n0 g d¢Z0d
edƒ edƒ Z1edƒZ2dedƒ Z3dZ4de4 Z5G dd„ de+j6ƒZ6G dd„ de6ƒZ7e6ƒ Z8e8j9Z9e8j:Z:e8j;Z;e8jZ>e8j?Z?e8j@Z@e8jAZAe8jBZBe8jCZCe8jDZDe8jEZEe8jFZFe8jGZGe8jHZHe8jIZIe8jJZJe8jKZKe8jLZLe8jMZMe8jNZNe8jOZOdd„ ZPd!dd„ZQeRe*dƒ�rèe*jSe8j9d� eTd k�røeQƒ d
S )"aù Random variable generators.
bytes
-----
uniform bytes (values between 0 and 255)
integers
--------
uniform within range
sequences
---------
pick random element
pick random sample
pick weighted random sample
generate random permutation
distributions on the real line:
------------------------------
uniform
triangular
normal (Gaussian)
lognormal
negative exponential
gamma
beta
pareto
Weibull
distributions on the circle (angles 0 to 2pi)
---------------------------------------------
circular uniform
von Mises
General notes on the underlying Mersenne Twister core generator:
* The period is 2**19937-1.
* It is one of the most extensively tested generators in existence.
* The random() method is implemented in C, executes in a single Python step,
and is, therefore, threadsafe.
é )Úwarn)ÚlogÚexpÚpiÚeÚceil)ÚsqrtÚacosÚcosÚsin)ÚtauÚfloor)Úurandom)ÚSetÚSequence)Ú
accumulateÚrepeat)ÚbisectN)Úsha512)ÚRandomÚSystemRandomÚbetavariateÚchoiceÚchoicesÚexpovariateÚgammavariateÚgaussÚgetrandbitsÚgetstateÚlognormvariateÚ
normalvariateÚ
paretovariateÚ randbytesÚrandintÚrandomÚ randrangeÚsampleÚseedÚsetstateÚshuffleÚ
triangularÚuniformÚvonmisesvariateÚweibullvariateé g à¿ç @ç @ç ð?ç @é5 é c s* e Zd ZdZdZdBdd„ZdC‡ fdd„ Z‡ fd d
„Z‡ fdd„Zd
d„ Z dd„ Z
dd„ Zdd„ Zdd„ Z
de> fdd„Ze
Zdd„ ZdDdd„Zdd„ Zd d!„ ZdEd"d#„Zdd$œd%d&„ZdFddd'œd(d)„Zd*d+„ ZdGd.d/„Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Zd