Edit File: random.cpython-36.opt-2.pyc
3 � \2k������������������@���s���d�dl�mZ�d�dlmZmZ�d�dlm Z mZm ZmZmZ�d�dlmZmZmZmZ�d�dlmZ�d�dlmZ m!Z"�d�dl#m$Z%�d�dl&Z'd�dl(Z)d d ddd ddddddddddddddddddd gZ*d!ed1��ed#��Z+d#e�Z,e d$�Z-d%e d&��Z.d'Z/d(e/��Z0d�dl1Z1G�d)d ��d e1j2�Z2G�d*d ��d e2�Z3d+d,��Z4d2d.d/�Z5e2��Z6e6j7Z7e6j8Z8e6j9Z9e6j:Z:e6j;Z;e6j<Z<e6j=Z=e6j>Z>e6j?Z?e6j@Z@e6jAZAe6jBZBe6jCZCe6jDZDe6jEZEe6jFZFe6jGZGe6jHZHe6jIZIe6jJZJe6jKZKe6jLZLeMd0k�r�e5���dS�)3�����)�warn)� MethodType�BuiltinMethodType)�log�exp�pi�e�ceil)�sqrt�acos�cos�sin)�urandom)�Set�Sequence)�sha512N�Random�seed�random�uniform�randint�choice�sample� randrange�shuffle� normalvariate�lognormvariate�expovariate�vonmisesvariate�gammavariate� triangular�gauss�betavariate� paretovariate�weibullvariate�getstate�setstate�getrandbits�choices�SystemRandom����g�������?g�������@g������@g�������?g������@�5�������c�������������������s��e�Zd�ZdZd:dd�Zd;��fdd� Z��fdd �Z��fd d�Zdd ��Zdd��Z dd��Z ddefdd�Zdd��Z ede>�eeefdd�Zdd��Zd<dd�Zdd��Zd=ddd�d d!�Zd"d#��Zd>d&d'�Zd(d)��Zd*d+��Zd,d-��Zd.d/��Zd0d1��Zd2d3��Zd4d5��Zd6d7��Z d8d9��Z!���Z"S�)?r�������Nc�������������C���s���|�j�|��d�|�_d�S�)N)r���� gauss_next)�self�x��r1����/usr/lib64/python3.6/random.py�__init__W���s���� zRandom.__init__r,���c����������������s����|dkr�t�|ttf�r�t�|t�r*|jd�n|}|rBt|d��d>�nd}x"tt|�D�]}d|�|A�d@�}qRW�|t|�N�}|d kr�d n|}|dkr�t�|tttf�r�t�|t�r�|j��}|t |�j ��7�}tj|d�}t ��j|��d�|�_d�S�)N����zlatin-1r�������iCB�l��������r,����big������)� isinstance�str�bytes�decode�ord�map�len� bytearray�encode�_sha512Zdigest�int� from_bytes�superr���r.���)r/����a�versionr0����c)� __class__r1���r2���r���`���s���� zRandom.seedc����������������s���|�j�t��j��|�jfS�)N)�VERSIONrE���r%���r.���)r/���)rI���r1���r2���r%�������s����zRandom.getstatec����������������s����|d�}|dkr*|\}}|�_�t��j|��nt|dkr�|\}}|�_�ytdd��|D���}W�n(�tk r|�}�zt|�W�Y�d�d�}~X�nX�t��j|��ntd||�jf���d�S�)Nr���r-���r,���c�������������s���s���|�]}|d�V��qdS�)r,���� ���Nl��������r1���)�.0r0���r1���r1���r2���� <genexpr>����s����z"Random.setstate.<locals>.<genexpr>z?state with version %s passed to Random.setstate() of version %s)r.���rE���r&����tuple� ValueError� TypeErrorrJ���)r/����staterG���Z internalstater���)rI���r1���r2���r&�������s����zRandom.setstatec�������������C���s���|�j���S�)N)r%���)r/���r1���r1���r2����__getstate__����s����zRandom.__getstate__c�������������C���s���|�j�|��d�S�)N)r&���)r/���rQ���r1���r1���r2����__setstate__����s����zRandom.__setstate__c�������������C���s���|�j�f�|�j��fS�)N)rI���r%���)r/���r1���r1���r2���� __reduce__����s����zRandom.__reduce__r4���c������� ������C���s��||�}||krt�d��|d�kr:|dkr2|�j|�S�t�d��||�}||krRt�d��||�}|dkrx|dkrx||�j|��S�|dkr�t�d|||f���||�}||kr�t�d��|dkr�||�d�|�} n"|dk�r�||�d�|�} nt�d��| dkr�t�d��|||�j| ���S�) Nz!non-integer arg 1 for randrange()r���zempty range for randrange()z non-integer stop for randrange()r4���z'empty range for randrange() (%d,%d, %d)z non-integer step for randrange()zzero step for randrange())rO���� _randbelow) r/����start�stop�step�_intZistartZistop�widthZistep�nr1���r1���r2���r�������s4���� zRandom.randrangec�������������C���s���|�j�||d��S�)Nr4���)r���)r/���rF����br1���r1���r2���r�������s����zRandom.randintc������� ������C���s����|�j�}|�j}||�|ks$||�|krN|j��} || �} x| |krH|| �} q6W�| S�||krltd��||��|��S�|dkr|td��||�}||�|�}|��} x| |kr�|��} q�W�|| |��|�S�)Nz�Underlying random() generator does not supply enough bits to choose from a population range this large. To remove the range limitation, add a getrandbits() method.r���zBoundary cannot be zero)r���r'���� bit_length�_warnrO���) r/���r[���rC����maxsize�typeZMethodZ BuiltinMethodr���r'����k�rZrem�limitr1���r1���r2���rU�������s&���� zRandom._randbelowc�������������C���s:���y|�j�t|��}W�n�tk r0���td�d��Y�nX�||�S�)Nz$Cannot choose from an empty sequence)rU���r?���rO���� IndexError)r/����seq�ir1���r1���r2���r�������s ����z Random.choicec�������������C���s����|d�krR|�j�}x�ttdt|���D�]*}||d��}||�||��||<�||<�q"W�nLt}xFttdt|���D�]0}||��|d���}||�||��||<�||<�qjW�d�S�)Nr4���)rU����reversed�ranger?���rC���)r/���r0���r���� randbelowrf����jrY���r1���r1���r2���r�����s���� zRandom.shufflec�������������C���s(��t�|t�rt|�}t�|t�s$td��|�j}t|�}d|��koD|kn��sRtd��d�g|�}d}|dkr�|dtt |d�d���7�}||kr�t |�}x�t|�D�]0}|||��} || �||<�|||�d��|| <�q�W�nRt��} | j }xDt|�D�]8}||�} x| | k�r ||�} q�W�|| ��|| �||<�q�W�|S�) Nz>Population must be a sequence or set. For dicts, use list(d).r���z,Sample larger than population or is negative��������r*���r-���r4���)r9����_SetrN���� _SequencerP���rU���r?���rO����_ceil�_log�listrh����set�add)r/���� populationra���ri���r[����resultZsetsizeZpoolrf���rj���ZselectedZselected_addr1���r1���r2���r�����s6���� z Random.sample)�cum_weightsra���c���������������s����|�j���d�krN|d�kr>t��t��������fdd�t|�D��S�ttj|���n|d�k r^td��t��t��krvtd��t j ��d��t��d��������fdd�t|�D��S�)Nc����������������s���g�|�]}�����������qS�r1���r1���)rL���rf���)rY���rt���r����totalr1���r2���� <listcomp>c��s����z"Random.choices.<locals>.<listcomp>z2Cannot specify both weights and cumulative weightsz3The number of weights does not match the populationr4���c����������������s$���g�|�]}���������d�����qS�)r���r1���)rL���rf���)�bisectrv����hirt���r���rw���r1���r2���rx���l��s���r7���)r���rC���r?���rh���rq���� _itertools� accumulaterP���rO����_bisectry���)r/���rt���Zweightsrv���ra���r1���)rY���ry���rv���rz���rt���r���rw���r2���r(���W��s ����zRandom.choicesc�������������C���s���|||�|�j�����S�)N)r���)r/���rF���r\���r1���r1���r2���r���s��s����zRandom.uniform�����������������?c�������������C���sx���|�j���}y |d�krdn||�||��}W�n�tk r<���|S�X�||kr`d|�}d|�}||�}}|||�||�d���S�)Ng�������?g�������?)r����ZeroDivisionError)r/���ZlowZhigh�mode�urH���r1���r1���r2���r ���y��s���� zRandom.triangularc�������������C���sT���|�j�}x@|��}d|���}t|d��|�}||�d�}|t|��krP�qW�|||��S�)Ng�������?g�������?g������@)r���� NV_MAGICCONSTrp���)r/����mu�sigmar����u1�u2�zZzzr1���r1���r2���r������s���� zRandom.normalvariatec�������������C���s���t�|�j||��S�)N)�_expr���)r/���r����r����r1���r1���r2���r������s����zRandom.lognormvariatec�������������C���s���t�d|�j�����|�S�)Ng�������?)rp���r���)r/���Zlambdr1���r1���r2���r������s����zRandom.expovariatec�������������C���s����|�j�}|dkrt|���S�d|�}|td||����}xN|��}tt|��}|||��}|��} | d||��k�s~| d|�t|��kr6P�q6W�d|�} | |�d| |���}|��}|dkr�|t|��t�} n|t|��t�} | S�)Ng���ư>g�������?g�������?)r����TWOPI�_sqrt�_cos�_pir�����_acos)r/���r����Zkappar����srb���r����r�����dr�����q�fZu3Zthetar1���r1���r2���r������s&���� $zRandom.vonmisesvariatec�������������C���s���|dks|dkrt�d��|�j}|dkr�td|�d��}|t�}||�}x�|��}d|��k�o`dk�n��shqHd|���}t|d|���|�} |t| ��} ||�|�}||| ��| �}|t�d|��dks�|t|�krH| |�S�qHW�n�|dk�r|��} x| dk�r�|��} q�W�t| ��|�S�x�|��} t|�t�}|| �}|dk�rD|d|��} nt||�|���} |��}|dk�r||| |d��k�r�P�n|t| ��k�rP��qW�| |�S�d�S�)Ng��������z*gammavariate: alpha and beta must be > 0.0g�������?g�������@gH�����z>g�P���?g������@)rO���r���r�����LOG4rp���r����� SG_MAGICCONST�_e)r/����alpha�betar���ZainvZbbbZcccr����r�����vr0���r����rb���r����r\����pr1���r1���r2���r������sJ���� zRandom.gammavariatec�������������C���s`���|�j�}|�j}d�|�_|d�krT|��t�}tdtd|������}t|�|�}t|�|�|�_|||��S�)Ng�������@g�������?g��������)r���r.���r����r����rp���r�����_sin)r/���r����r����r���r����Zx2piZg2radr1���r1���r2���r!���?��s���� zRandom.gaussc�������������C���s0���|�j�|d�}|dkrdS�|||�j�|d���S�d�S�)Ng�������?r���g��������)r���)r/���r����r�����yr1���r1���r2���r"���t��s���� zRandom.betavariatec�������������C���s���d|�j����}d|d|���S�)Ng�������?)r���)r/���r����r����r1���r1���r2���r#������s����zRandom.paretovariatec�������������C���s"���d|�j����}|t|��d|���S�)Ng�������?)r���rp���)r/���r����r����r����r1���r1���r2���r$������s����zRandom.weibullvariate)N)Nr,���)N)N)r~���r���N)#�__name__� __module__�__qualname__rJ���r3���r���r%���r&���rR���rS���rT���rC���r���r����BPFr`����_MethodType�_BuiltinMethodTyperU���r���r���r���r(���r���r ���r���r���r���r���r���r!���r"���r#���r$���� __classcell__r1���r1���)rI���r2���r���G���s6��� , : 0H5 c���������������@���s4���e�Zd�Zdd��Zdd��Zdd��Zdd��Ze�ZZd S�) r)���c�������������C���s���t�jtd�d�d?�t�S�)Nr5���r6���r-���)rC���rD����_urandom� RECIP_BPF)r/���r1���r1���r2���r������s����zSystemRandom.randomc�������������C���sP���|dkrt�d��|t|�kr$td��|d�d�}tjt|�d�}||d�|�?�S�)Nr���z(number of bits must be greater than zeroz#number of bits should be an integerr5�������r6���)rO���rC���rP���rD���r����)r/���ra���Znumbytesr0���r1���r1���r2���r'������s����zSystemRandom.getrandbitsc�������������O���s���d�S�)Nr1���)r/����args�kwdsr1���r1���r2���r������s����zSystemRandom.seedc�������������O���s���t�d��d�S�)Nz*System entropy source does not have state.)�NotImplementedError)r/���r����r����r1���r1���r2����_notimplemented���s����zSystemRandom._notimplementedN) r����r����r����r���r'���r���r����r%���r&���r1���r1���r1���r2���r)������s ��� c�������������C���s����dd�l�}t|�d|j��d}d}d}d }|j���}x@t|��D�]4} ||��} || 7�}|| | ��}t| |�}t| |�}q8W�|j���}tt||�d�ddd��||��}t||��||���} td || ||f���d�S�)Nr����timesg��������g��� _�Br-���zsec,� )�endz"avg %g, stddev %g, min %g, max %g g��� _��)�time�printr����rh����min�max�roundr����)r[����funcr����r����rw���ZsqsumZsmallestZlargestZt0rf���r0���Zt1ZavgZstddevr1���r1���r2����_test_generator���s&���� r��������c�������������C���s����t�|�tf���t�|�td��t�|�td��t�|�td ��t�|�td��t�|�td��t�|�td��t�|�td��t�|�td��t�|�td��t�|�td��t�|�td��t�|�td��t�|�td��t�|�td��t�|�td��d�S�)N�����������������?�{�G�z�?皙�����?��������@��������?��������?�������4@�������i@�������@)r����r����)r����r����)r����r����)r����r����)r����r����)r����r����)r����r����)r����r����)r����r����)r����r����)r����r����)r����r����)r����r����)r����r�����UUUUUU�?)r����r����r����) r����r���r���r���r���r���r!���r"���r ���)�Nr1���r1���r2����_test���s ����r�����__main__g�������)r����)N�warningsr���r^����typesr���r����r���r����Zmathr���rp���r���r����r���r����r���r����r ���ro���r ���r����r���r����r���r����r ���r�����osr���r�����_collections_abcr���rm���r���rn���Zhashlibr���rB���� itertoolsr{���ry���r}����__all__r����r����r����r����r����r����Z_randomr���r)���r����r����Z_instr���r���r���r ���r���r���r���r���r���r(���r���r���r���r���r���r!���r"���r#���r$���r%���r&���r'���r����r1���r1���r1���r2����<module>(���sl��� ����Y!