<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]_g                 @   sv  d  d l  m Z d  d l m Z m Z d  d l m	 Z
 m Z m Z m Z m Z d  d l m Z m Z m Z m Z d  d l m Z d  d l m Z  m! Z" d  d l# m$ Z% d d	 d
 d d d d d d d d d d d d d d d d d d d d g Z& d e d   e d!  Z' d! e Z( e
 d"  Z) d# e
 d$  Z* d% Z+ d& e+ Z, d  d' l- Z- Gd( d   d e- j.  Z. Gd) d   d e.  Z/ d* d+   Z0 d, d- d.  Z1 e.   Z2 e2 j3 Z3 e2 j4 Z4 e2 j5 Z5 e2 j6 Z6 e2 j7 Z7 e2 j8 Z8 e2 j9 Z9 e2 j: Z: e2 j; Z; e2 j< Z< e2 j= Z= e2 j> Z> e2 j? Z? e2 j@ Z@ e2 jA ZA e2 jB ZB e2 jC ZC e2 jD ZD e2 jE ZE e2 jF ZF e2 jG ZG eH d/ k rre1   d' S)0    )warn)
MethodTypeBuiltinMethodType)logexppieceil)sqrtacoscossin)urandom)SetSequence)sha512Randomseedrandomuniformrandintchoicesample	randrangeshufflenormalvariatelognormvariateexpovariatevonmisesvariategammavariate
triangulargaussbetavariateparetovariateweibullvariategetstatesetstategetrandbitsSystemRandom   g      ?g       @g      @g      ?g      @5      Nc                   sy  e  Z d  Z d Z d d d  Z d d   f d d  Z   f d d	   Z   f d
 d   Z d d   Z d d   Z	 d d   Z
 d d e d d  Z d d   Z e d e >e e e d d  Z d d   Z d d d  Z d d   Z d d    Z d! d" d d# d$  Z d% d&   Z d' d(   Z d) d*   Z d+ d,   Z d- d.   Z d/ d0   Z d1 d2   Z d3 d4   Z d5 d6   Z    S)7r      Nc             C   s   |  j  |  d  |  _ d  S)N)r   
gauss_next)selfx r0   +/opt/alt/python35/lib64/python3.5/random.py__init__T   s    zRandom.__init__r+   c                su  | d  k r_ y t  j t d  d  } Wn4 t k
 r^ d d  l } t  | j   d  } Yn X| d k r t | t t f  r | r t | d  d >n d } x& | D] } d | t |  Ad @} q W| t	 |  N} | d
 k r d n | } | d	 k rXt | t t t
 f  rXt | t  r0| j   } | t |  j   7} t  j | d  } t   j |  d  |  _ d  S)Ni	  bigr            iCB l    r+   )int
from_bytes_urandomNotImplementedErrortime
isinstancestrbytesordlen	bytearrayencode_sha512digestsuperr   r-   )r.   aversionr=   r/   c)	__class__r0   r1   r   ]   s(    ! zRandom.seedc                s   |  j  t   j   |  j f S)N)VERSIONrG   r%   r-   )r.   )rK   r0   r1   r%      s    zRandom.getstatec                s   | d } | d k r; | \ } } |  _  t   j |  n | d k r | \ } } |  _  y t d d   | D  } Wn. t k
 r } z t |  WYd  d  } ~ Xn Xt   j |  n t d | |  j f   d  S)Nr   r,   r+   c             s   s   |  ] } | d Vq d S)r+       Nl        r0   ).0r/   r0   r0   r1   	<genexpr>   s    z"Random.setstate.<locals>.<genexpr>z?state with version %s passed to Random.setstate() of version %s)r-   rG   r&   tuple
ValueError	TypeErrorrL   )r.   staterI   internalstater   )rK   r0   r1   r&      s    
zRandom.setstatec             C   s
   |  j    S)N)r%   )r.   r0   r0   r1   __getstate__   s    zRandom.__getstate__c             C   s   |  j  |  d  S)N)r&   )r.   rS   r0   r0   r1   __setstate__   s    zRandom.__setstate__c             C   s   |  j  f  |  j   f S)N)rK   r%   )r.   r0   r0   r1   
__reduce__   s    zRandom.__reduce__r5   c       
      C   sp  | |  } | | k r$ t  d   | d  k rU | d k rI |  j |  St  d   | |  } | | k ry t  d   | | } | d k r | d k r | |  j |  S| d k r t  d | | | f   | |  } | | k r t  d   | d k r| | d | }	 n- | d k  r7| | d | }	 n t  d   |	 d k r[t  d   | | |  j |	  S)	Nz!non-integer arg 1 for randrange()r   zempty range for randrange()z non-integer stop for randrange()r5   z'empty range for randrange() (%d,%d, %d)z non-integer step for randrange()zzero step for randrange())rQ   
_randbelow)
r.   startstopstep_intistartistopwidthistepnr0   r0   r1   r      s4    

zRandom.randrangec             C   s   |  j  | | d  S)Nr5   )r   )r.   rH   br0   r0   r1   r      s    zRandom.randintc             C   s   |  j  } |  j } | |  | k s6 | |  | k rq | j   }	 | |	  }
 x |
 | k rl | |	  }
 qQ W|
 S| | k r t d  | |   |  S| | } | | | } |   }
 x |
 | k r |   }
 q W| |
 |  | S)NzUnderlying 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   r'   
bit_length_warn)r.   ra   r9   maxsizetypeMethodBuiltinMethodr   r'   krremlimitr0   r0   r1   rX      s"    		$

	zRandom._randbelowc             C   sB   y |  j  t |   } Wn t k
 r9 t d   Yn X| | S)Nz$Cannot choose from an empty sequence)rX   rB   rQ   
IndexError)r.   seqir0   r0   r1   r     s
    zRandom.choicec             C   s   | d  k rk |  j  } x t t d t |    D]3 } | | d  } | | | | | | <| | <q1 Wn` t } xW t t d t |    D]: } | |   | d  } | | | | | | <| | <q Wd  S)Nr5   )rX   reversedrangerB   r9   )r.   r/   r   	randbelowro   jr\   r0   r0   r1   r     s    		"$"zRandom.shufflec             C   s  t  | t  r t |  } t  | t  s6 t d   |  j } t |  } d | k ob | k n ss t d   d  g | } d } | d k r | d t t	 | d d   7} | | k rt
 |  } x t |  D]: } | | |  }	 | |	 | | <| | | d | |	 <q Wnl t   }
 |
 j } xW t |  D]I } | |  }	 x |	 |
 k rh| |  }	 qMW| |	  | |	 | | <q8W| S)	Nz>Population must be a sequence or set.  For dicts, use list(d).r   zSample larger than population      r)   r,   r5   )r>   _SetrP   	_SequencerR   rX   rB   rQ   _ceil_loglistrq   setadd)r.   
populationri   rr   ra   resultsetsizepoolro   rs   selectedselected_addr0   r0   r1   r   !  s6    	!		
zRandom.samplec             C   s   | | | |  j    S)N)r   )r.   rH   rb   r0   r0   r1   r   _  s    zRandom.uniformg        g      ?c             C   s   |  j    } y( | d  k r! d n | | | | } Wn t k
 rL | SYn X| | k rz d | } d | } | | } } | | | | | d S)Ng      ?g      ?)r   ZeroDivisionError)r.   lowhighmodeurJ   r0   r0   r1   r    e  s    	(	

zRandom.triangularc             C   sf   |  j  } xN |   } d |   } t | d | } | | d } | t |  k r Pq W| | | S)Ng      ?g      ?g      @)r   NV_MAGICCONSTry   )r.   musigmar   u1u2zzzr0   r0   r1   r   {  s    		zRandom.normalvariatec             C   s   t  |  j | |   S)N)_expr   )r.   r   r   r0   r0   r1   r     s    zRandom.lognormvariatec             C   s   t  d |  j    | S)Ng      ?)ry   r   )r.   lambdr0   r0   r1   r     s    zRandom.expovariatec             C   s  |  j  } | d k r  t |   Sd | } | t d | |  } xc |   } t t |  } | | | } |   }	 |	 d | | k  s |	 d | t |  k rE PqE Wd | }
 |
 | d |
 | } |   } | d k r | t |  t } n | t |  t } | S)Ngư>g      ?g      ?)r   TWOPI_sqrt_cos_pir   _acos)r.   r   kappar   srj   r   r   dr   qfu3thetar0   r0   r1   r     s&    	
		.
	zRandom.vonmisesvariatec             C   s  | d k s | d k r$ t  d   |  j } | d k rt d | d  } | t } | | } x|   } d | k  o d k  n s qd d |   } t | d |  | }	 | t |	  }
 | | | } | | |	 |
 } | t d | d k s| t |  k rd |
 | Sqd Wn | d k rZ|   } x | d k rJ|   } q2Wt |  | Sx |   } t | t } | | } | d k r| d | }
 n t | | |  }
 |   } | d k r| |
 | d k rPq]| t |
  k r]Pq]W|
 | Sd  S)Ng        z*gammavariate: alpha and beta must be > 0.0g      ?g       @gHz>gP?g      @)rQ   r   r   LOG4ry   r   SG_MAGICCONST_e)r.   alphabetar   ainvbbbcccr   r   vr/   r   rj   r   rb   pr0   r0   r1   r     sJ    	

	*		
	zRandom.gammavariatec             C   s   |  j  } |  j } d  |  _ | d  k rt |   t } t d t d |     } t |  | } t |  | |  _ | | | S)Ng       @g      ?g       )r   r-   r   r   ry   r   _sin)r.   r   r   r   r   x2pig2radr0   r0   r1   r!   +  s    			zRandom.gaussc             C   s>   |  j  | d  } | d k r" d S| | |  j  | d  Sd  S)Ng      ?r   g        )r   )r.   r   r   yr0   r0   r1   r"   `  s    
zRandom.betavariatec             C   s    d |  j    } d | d | S)Ng      ?)r   )r.   r   r   r0   r0   r1   r#   r  s    zRandom.paretovariatec             C   s'   d |  j    } | t |  d | S)Ng      ?)r   ry   )r.   r   r   r   r0   r0   r1   r$   {  s    zRandom.weibullvariate)!__name__
__module____qualname__rL   r2   r   r%   r&   rU   rV   rW   r9   r   r   BPFrf   _MethodType_BuiltinMethodTyperX   r   r   r   r   r    r   r   r   r   r   r!   r"   r#   r$   r0   r0   )rK   r1   r   D   s4   	),>0H5	c               @   sJ   e  Z d  Z d d   Z d d   Z d d   Z d d   Z e Z Z d	 S)
r(   c             C   s   t  j t d  d  d ?t S)Nr6   r3   r,   )r9   r:   r;   	RECIP_BPF)r.   r0   r0   r1   r     s    zSystemRandom.randomc             C   sl   | d k r t  d   | t |  k r6 t d   | d d } t j t |  d  } | | d | ?S)Nr   z(number of bits must be greater than zeroz#number of bits should be an integerr6      r3   )rQ   r9   rR   r:   r;   )r.   ri   numbytesr/   r0   r0   r1   r'     s    zSystemRandom.getrandbitsc             O   s   d  S)Nr0   )r.   argskwdsr0   r0   r1   r     s    zSystemRandom.seedc             O   s   t  d   d  S)Nz*System entropy source does not have state.)r<   )r.   r   r   r0   r0   r1   _notimplemented  s    zSystemRandom._notimplementedN)	r   r   r   r   r'   r   r   r%   r&   r0   r0   r0   r1   r(     s
   
c             C   s  d d  l  } t |  d | j  d } d } d } d
 } | j    } xV t |   D]H }	 | |   }
 | |
 7} | |
 |
 } t |
 |  } t |
 |  } qP W| j    } t t | | d  d d d | |  } t | |  | |  } t d	 | | | | f  d  S)Nr   timesg        g    _Br,   zsec,end z"avg %g, stddev %g, min %g, max %g
g    _)r=   printr   rq   minmaxroundr   )ra   funcr   r=   totalsqsumsmallestlargestt0ro   r/   t1avgstddevr0   r0   r1   _test_generator  s&    
 
r   i  c             C   s  t  |  t f   t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  t  |  t d  d  S)N              ?{Gz?皙?       @      ??      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    )Nr0   r0   r1   _test  s     r   __main__)Iwarningsr   rd   typesr   r   r   r   mathr   ry   r   r   r   r   r   r   r	   rx   r
   r   r   r   r   r   r   r   osr   r;   _collections_abcr   rv   r   rw   hashlibr   rE   __all__r   r   r   r   r   r   _randomr   r(   r   r   _instr   r   r   r    r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r%   r&   r'   r   r0   r0   r0   r1   <module>'   sb   ("		
  F!																						