PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  lY_g@svddlmZddlmZmZddlm Z m Z m ZmZmZddlmZmZmZmZddlmZddlmZ m!Z"ddl#m$Z%dd d d d d dddddddddddddddddgZ&de d ed!Z'd!eZ(e d"Z)d#e d$Z*d%Z+d&e+ Z,dd'l-Z-Gd(dde-j.Z.Gd)dde.Z/d*d+Z0d,d-d.Z1e.Z2e2j3Z3e2j4Z4e2j5Z5e2j6Z6e2j7Z7e2j8Z8e2j9Z9e2j:Z:e2j;Z;e2j<Z<e2j=Z=e2j>Z>e2j?Z?e2j@Z@e2jAZAe2jBZBe2jCZCe2jDZDe2jEZEe2jFZFe2jGZGeHd/krre1d'S)0)warn) MethodTypeBuiltinMethodType)logexppieceil)sqrtacoscossin)urandom)SetSequence)sha512Randomseedrandomuniformrandintchoicesample randrangeshuffle normalvariatelognormvariate expovariatevonmisesvariate gammavariate triangulargauss betavariate paretovariateweibullvariategetstatesetstate getrandbits SystemRandomg?g@g@g?g@5NcsyeZdZdZdddZddfddZfdd Zfd d Zd d ZddZ ddZ dde ddZ ddZ e de>eeeddZddZdddZddZdd Zd!d"dd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Z S)7rNcCs|j|d|_dS)N)r gauss_next)selfxr0%/opt/python35/lib/python3.5/random.py__init__Ts zRandom.__init__r+c su|dkr_ytjtdd}Wn4tk r^ddl}t|jd}YnX|dkrt|ttfr|rt|dd>nd}x&|D]}d|t|Ad@}qW|t |N}|d krd n|}|d krXt|ttt frXt|tr0|j }|t |j 7}tj|d}tj|d|_dS) Ni bigriCBlr+)int from_bytes_urandomNotImplementedErrortime isinstancestrbytesordlen bytearrayencode_sha512digestsuperrr-)r.aversionr=r/c) __class__r0r1r]s(   !    z Random.seedcs|jtj|jfS)N)VERSIONrGr%r-)r.)rKr0r1r%szRandom.getstatecs|d}|dkr;|\}}|_tj|n|dkr|\}}|_ytdd|D}Wn.tk r}zt|WYdd}~XnXtj|ntd||jfdS)Nrr,r+css|]}|dVqdS)r+ Nlr0).0r/r0r0r1 sz"Random.setstate..z?state with version %s passed to Random.setstate() of version %s)r-rGr&tuple ValueError TypeErrorrL)r.staterI internalstater)rKr0r1r&s   zRandom.setstatecCs |jS)N)r%)r.r0r0r1 __getstate__szRandom.__getstate__cCs|j|dS)N)r&)r.rSr0r0r1 __setstate__szRandom.__setstate__cCs|jf|jfS)N)rKr%)r.r0r0r1 __reduce__szRandom.__reduce__r5c Csp||}||kr$td|dkrU|dkrI|j|Std||}||krytd||}|dkr|dkr||j|S|dkrtd|||f||}||krtd|dkr||d|} n-|dkr7||d|} n td| dkr[td|||j| S) Nz!non-integer arg 1 for randrange()rzempty range for randrange()z non-integer stop for randrange()r5z'empty range for randrange() (%d,%d, %d)z non-integer step for randrange()zzero step for randrange())rQ _randbelow) r.startstopstep_intistartistopwidthistepnr0r0r1rs4                    zRandom.randrangecCs|j||dS)Nr5)r)r.rHbr0r0r1rszRandom.randintc Cs|j}|j}|||ks6|||krq|j} || } x| |krl|| } qQW| S||krtd|||S||} || |} |} x| | kr|} qW|| ||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.)rr' bit_length_warn) r.rar9maxsizetypeMethod BuiltinMethodrr'krremlimitr0r0r1rXs"  $       zRandom._randbelowc CsBy|jt|}Wntk r9tdYnX||S)Nz$Cannot choose from an empty sequence)rXrBrQ IndexError)r.seqir0r0r1rs  z Random.choicecCs|dkrk|j}xttdt|D]3}||d}||||||<||Population must be a sequence or set. For dicts, use list(d).rzSample larger than populationr)r,r5)r>_SetrP _SequencerRrXrBrQ_ceil_loglistrqsetadd) r. populationrirrraresultsetsizepoolrorsselected selected_addr0r0r1r!s6       !      z Random.samplecCs||||jS)N)r)r.rHrbr0r0r1r_szRandom.uniformgg?c Cs|j}y(|dkr!dn||||}Wntk rL|SYnX||krzd|}d|}||}}|||||dS)Ng?g?)rZeroDivisionError)r.lowhighmodeurJr0r0r1r es (      zRandom.triangularcCsf|j}xN|}d|}t|d|}||d}|t| kr Pq W|||S)Ng?g?g@)r NV_MAGICCONSTry)r.musigmaru1u2zzzr0r0r1r{s   zRandom.normalvariatecCst|j||S)N)_expr)r.rrr0r0r1rszRandom.lognormvariatecCstd|j |S)Ng?)ryr)r.lambdr0r0r1rszRandom.expovariatecCs |j}|dkr t|Sd|}|td||}xc|}tt|}|||}|} | d||ks| d|t|krEPqEWd|} | |d| |} |} | dkr|t| t} n|t| t} | S)Ngư>g?g?)rTWOPI_sqrt_cos_pir_acos)r.rkapparsrjrrdrqfu3thetar0r0r1rs&      .   zRandom.vonmisesvariatecCs|dks|dkr$td|j}|dkrtd|d}|t}||}x|}d|kodknsqdd|}t|d||} |t| } |||} ||| | } | td| dks | t| krd| |SqdWn|dkrZ|} x| dkrJ|} q2Wt|  |Sx|} t|t}|| }|dkr|d|} nt||| } |}|dkr|| |dkrPq]|t| kr]Pq]W| |SdS)Ngz*gammavariate: alpha and beta must be > 0.0g?g@gHz>gP?g@)rQrrLOG4ryr SG_MAGICCONST_e)r.alphabetarainvbbbcccrrvr/rrjrrbpr0r0r1rsJ       *        zRandom.gammavariatecCs|j}|j}d|_|dkrt|t}tdtd|}t||}t|||_|||S)Ng@g?g)rr-rrryr_sin)r.rrrrx2pig2radr0r0r1r!+s     z Random.gausscCs>|j|d}|dkr"dS|||j|dSdS)Ng?rg)r)r.rryr0r0r1r"`s  zRandom.betavariatecCs d|j}d|d|S)Ng?)r)r.rrr0r0r1r#rszRandom.paretovariatecCs'd|j}|t| d|S)Ng?)rry)r.rrrr0r0r1r${szRandom.weibullvariate)!__name__ __module__ __qualname__rLr2rr%r&rUrVrWr9rrBPFrf _MethodType_BuiltinMethodTyperXrrrrr rrrrrr!r"r#r$r0r0)rKr1rDs4  )   ,    >    0 H 5  c@sJeZdZddZddZddZddZeZZd S) r(cCstjtddd?tS)Nr6r3r,)r9r:r; RECIP_BPF)r.r0r0r1rszSystemRandom.randomcCsl|dkrtd|t|kr6td|dd}tjt|d}||d|?S)Nrz(number of bits must be greater than zeroz#number of bits should be an integerr6r3)rQr9rRr:r;)r.rinumbytesr/r0r0r1r's   zSystemRandom.getrandbitscOsdS)Nr0)r.argskwdsr0r0r1rszSystemRandom.seedcOstddS)Nz*System entropy source does not have state.)r<)r.rrr0r0r1_notimplementedszSystemRandom._notimplementedN) rrrrr'rrr%r&r0r0r0r1r(s    cCsddl}t|d|jd}d}d}d }|j}xVt|D]H} ||} || 7}|| | }t| |}t| |}qPW|j} tt| |dddd||} t||| | } td | | ||fdS) Nrtimesgg _Br,zsec,end z"avg %g, stddev %g, min %g, max %g g _)r=printrrqminmaxroundr)rafuncrr=totalsqsumsmallestlargestt0ror/t1avgstddevr0r0r1_test_generators&       ricCst|tft|td t|td t|td t|tdt|tdt|tdt|tdt|tdt|tdt|tdt|tdt|tdt|tdt|tdt|tddS)N?{Gz?皙?@??4@i@@)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rrUUUUUU?)rrr) rrrrrrr!r"r )Nr0r0r1_tests r__main__)Iwarningsrrdtypesrrrrmathrryrrrrrrr rxr rr rr rr rosrr;_collections_abcrrvrrwhashlibrrE__all__rrrrrr_randomrr(rr_instrrrr rrrrrrrrrrr!r"r#r$r%r&r'rr0r0r0r1'sb("         F!