grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B ül6mm £Kã@söddlmZddlmZmZddlm Z m Z m ZmZmZddlmZmZmZmZddlmZddlmZ m!Z"ddl#m$Z%ddl&Z'ddl(Z)ddlZ*d d d d d ddddddddddddddddddd gZ+d!e d"ƒed#ƒZ,d#eZ-e d$ƒZ.d%e d&ƒZ/d'Z0d(e0 Z1ddl2Z2Gd)d „d e2j3ƒZ3Gd*d „d e3ƒZ4d+d,„Z5d3d.d/„Z6e3ƒZ7e7j8Z8e7j9Z9e7j:Z:e7j;Z;e7jZ>e7j?Z?e7j@Z@e7jAZAe7jBZBe7jCZCe7jDZDe7jEZEe7jFZFe7jGZGe7jHZHe7jIZIe7jJZJe7jKZKe7jLZLe7jMZMeNe*d0ƒ�râe*jOe7j8d1�ePd2k�ròe6ƒdS)4é)Ú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écseZdZdZd:dd„Zd;‡fdd„ Z‡fdd „Z‡fd d „Zd d „Zdd„Z dd„Z dde fdd„Z dd„Z e de>eeefdd„Zdd„Zdd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Z d8d9„Z!‡Z"S)?réNcCs| |¡d|_dS)N)rÚ gauss_next)ÚselfÚx©r1ú+/opt/alt/python37/lib64/python3.7/random.pyÚ__init__Xs zRandom.__init__r,csâ|dkr†t|ttfƒr†t|tƒr*| d¡n|}|rBt|dƒd>nd}x"tt|ƒD]}d||Ad@}qRW|t|ƒN}|dkr‚dn|}|d krÌt|tttfƒrÌt|tƒr°| ¡}|t |ƒ  ¡7}t   |d ¡}t ƒ |¡d|_dS) Nézlatin-1réiCBlÿÿÿÿéÿÿÿÿéþÿÿÿr,Úbig)Ú isinstanceÚstrÚbytesÚdecodeÚordÚmapÚlenÚ bytearrayÚencodeÚ_sha512ZdigestÚintÚ from_bytesÚsuperrr.)r/ÚaÚversionr0Úc)Ú __class__r1r2ras    z Random.seedcs|jtƒ ¡|jfS)N)ÚVERSIONrEr%r.)r/)rIr1r2r%�szRandom.getstatec s¢|d}|dkr*|\}}|_tƒ |¡nt|dkrŒ|\}}|_ytdd„|Dƒƒ}Wn(tk r|}z t|‚Wdd}~XYnXtƒ |¡ntd||jfƒ‚dS)Nrr-r,css|]}|dVqdS)lNr1)Ú.0r0r1r1r2ú ’sz"Random.setstate..z?state with version %s passed to Random.setstate() of version %s)r.rEr&ÚtupleÚ ValueErrorÚ TypeErrorrJ)r/ÚstaterGZ internalstater)rIr1r2r&…s  zRandom.setstatecCs| ¡S)N)r%)r/r1r1r2Ú __getstate__£szRandom.__getstate__cCs| |¡dS)N)r&)r/rPr1r1r2Ú __setstate__¦szRandom.__setstate__cCs|jd| ¡fS)Nr1)rIr%)r/r1r1r2Ú __reduce__©szRandom.__reduce__r4c Cs||ƒ}||krtdƒ‚|dkr:|dkr2| |¡Stdƒ‚||ƒ}||krRtdƒ‚||}|dkrx|dkrx|| |¡S|dkr’td|||fƒ‚||ƒ}||krªtdƒ‚|dkrÄ||d|} n"|dkrÞ||d|} ntdƒ‚| dkrötdƒ‚||| | ¡S) Nz!non-integer arg 1 for randrange()rzempty range for randrange()z non-integer stop for randrange()r4z'empty range for randrange() (%d,%d, %d)z non-integer step for randrange()zzero step for randrange())rNÚ _randbelow) r/ÚstartÚstopÚstepÚ_intZistartZistopÚwidthZistepÚnr1r1r2r®s4  zRandom.randrangecCs| ||d¡S)Nr4)r)r/rFÚbr1r1r2rÚszRandom.randintc Csº|j}|j}||ƒ|ks$||ƒ|krN| ¡} || ƒ} 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.rzBoundary cannot be zero)rr'Ú bit_lengthÚ_warnrN) r/rZrCÚmaxsizeÚtypeZMethodZ BuiltinMethodrr'ÚkÚrZremÚlimitr1r1r2rTàs&     zRandom._randbelowcCs:y| t|ƒ¡}Wntk r0tdƒd‚YnX||S)Nz$Cannot choose from an empty sequence)rTr?rNÚ IndexError)r/ÚseqÚir1r1r2rs z Random.choicecCs¢|dkrR|j}xŽttdt|ƒƒƒD]*}||dƒ}||||||<||<q"WnLt}xFttdt|ƒƒƒD]0}||ƒ|dƒ}||||||<||<qjWdS)Nr4)rTÚreversedÚranger?rC)r/r0rÚ randbelowreÚjrXr1r1r2rs   zRandom.shufflec Cs&t|tƒrt|ƒ}t|tƒs$tdƒ‚|j}t|ƒ}d|krF|ksPntdƒ‚dg|}d}|dkr€|dtt |ddƒƒ7}||krÐt |ƒ}x�t |ƒD]0}|||ƒ} || ||<|||d|| <qšWnRt ƒ} | 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).rz,Sample larger than population or is negativeéér*r-r4)r9Ú_SetrMÚ _SequencerOrTr?rNÚ_ceilÚ_logÚlistrgÚsetÚadd) r/Ú populationr`rhrZÚresultZsetsizeZpoolreriZselectedZ selected_addr1r1r2rs6       z Random.sample)Ú cum_weightsr`cs°|j‰ˆdkrN|dkr>t‰tˆƒ‰‡‡‡‡fdd„t|ƒDƒStt |¡ƒ‰n|dk r^tdƒ‚tˆƒtˆƒkrvtdƒ‚t j ‰ˆd‰tˆƒd‰‡‡‡‡‡‡fdd„t|ƒDƒS)Ncsg|]}ˆˆˆƒˆƒ‘qSr1r1)rKre)rXrsrÚtotalr1r2ú dsz"Random.choices..z2Cannot specify both weights and cumulative weightsz3The number of weights does not match the populationr6r4cs$g|]}ˆˆˆˆƒˆdˆƒ‘qS)rr1)rKre)ÚbisectruÚhirsrrvr1r2rwms) rrCr?rgrpÚ _itertoolsÚ accumulaterOrNÚ_bisectrx)r/rsZweightsrur`r1)rXrxruryrsrrvr2r(Xs  zRandom.choicescCs|||| ¡S)N)r)r/rFr[r1r1r2rtszRandom.uniformççð?cCsx| ¡}y |dkrdn||||}Wntk r<|SX||kr`d|}d|}||}}|||t||ƒS)Ngà?gð?)rÚZeroDivisionErrorÚ_sqrt)r/ZlowZhighÚmodeÚurHr1r1r2r zs   zRandom.triangularcCsT|j}x@|ƒ}d|ƒ}t|d|}||d}|t|ƒ krPqW|||S)Ngð?gà?g@)rÚ NV_MAGICCONSTro)r/ÚmuÚsigmarÚu1Úu2ÚzZzzr1r1r2r�s   zRandom.normalvariatecCst| ||¡ƒS)N)Ú_expr)r/r„r…r1r1r2r©szRandom.lognormvariatecCstd| ¡ƒ |S)Ngð?)ror)r/Zlambdr1r1r2rµszRandom.expovariatecCsÔ|j}|dkrt|ƒSd|}|td||ƒ}xN|ƒ}tt|ƒ}|||}|ƒ} | d||ks~| d|t|ƒkr6Pq6Wd|} | |d| |} |ƒ} | dkrÀ|t| ƒt} n|t| ƒt} | S)Ng�íµ ÷ư>gà?gð?)rÚTWOPIr€Ú_cosÚ_pir‰Ú_acos)r/r„ZkapparÚsrar†rˆÚdr‡ÚqÚfZu3Zthetar1r1r2rÈs&   $zRandom.vonmisesvariatecCsœ|dks|dkrtdƒ‚|j}|dkrÚtd|dƒ}|t}||}x�|ƒ}d|krbdksfqHqHd|ƒ}t|d|ƒ|} |t| ƒ} |||} ||| | } | td| dksÌ| t| ƒkrH| |SqHWn¾|dk�r |ƒ} x| dkrü|ƒ} qìWt| ƒ |Sx‚|ƒ} t|t}|| }|dk�r@|d|} nt|||ƒ } |ƒ}|dk�rx|| |dk�rŠPn|t| ƒk�rP�qW| |SdS)Ngz*gammavariate: alpha and beta must be > 0.0gð?g@gH¯¼šò×z>gËPÊÿÿï?g@)rNrr€ÚLOG4ror‰Ú SG_MAGICCONSTÚ_e)r/ÚalphaÚbetarZainvZbbbZcccr†r‡Úvr0rˆrar‚r[Úpr1r1r2røsJ          zRandom.gammavariatecCs`|j}|j}d|_|dkrT|ƒt}tdtd|ƒƒƒ}t|ƒ|}t|ƒ||_|||S)NgÀgð?)rr.rŠr€ror‹Ú_sin)r/r„r…rrˆZx2piZg2radr1r1r2r!@s  z Random.gausscCs0| |d¡}|dkrdS||| |d¡SdS)Ngð?rg)r)r/r•r–Úyr1r1r2r"us zRandom.betavariatecCsd| ¡}d|d|S)Ngð?)r)r/r•r‚r1r1r2r#‡s zRandom.paretovariatecCs"d| ¡}|t|ƒ d|S)Ngð?)rro)r/r•r–r‚r1r1r2r$�s zRandom.weibullvariate)N)Nr,)N)N)r}r~N)#Ú__name__Ú __module__Ú __qualname__rJr3rr%r&rQrRrSrCrrÚBPFr_Ú _MethodTypeÚ_BuiltinMethodTyperTrrrr(rr rrrrrr!r"r#r$Ú __classcell__r1r1)rIr2rHs6   ,  :  0H5 c@s4eZdZdd„Zdd„Zdd„Zdd„ZeZZd S) r)cCst tdƒd¡d?tS)Nr5r8r-)rCrDÚ_urandomÚ RECIP_BPF)r/r1r1r2r¥szSystemRandom.randomcCsP|dkrtdƒ‚|t|ƒkr$tdƒ‚|dd}t t|ƒd¡}||d|?S)Nrz(number of bits must be greater than zeroz#number of bits should be an integerr5ér8)rNrCrOrDr¢)r/r`Znumbytesr0r1r1r2r'©s  zSystemRandom.getrandbitscOsdS)Nr1)r/ÚargsÚkwdsr1r1r2r³szSystemRandom.seedcOs tdƒ‚dS)Nz*System entropy source does not have state.)ÚNotImplementedError)r/r¥r¦r1r1r2Ú_notimplemented·szSystemRandom._notimplementedN) r›rœr�rr'rr¨r%r&r1r1r1r2r)�s  cCsÄddl}t|d|jƒd}d}d}d}| ¡}x@t|ƒD]4} ||Ž} || 7}|| | }t| |ƒ}t| |ƒ}q8W| ¡} tt| |dƒddd �||} t||| | ƒ} td | | ||fƒdS) NrÚtimesgg _ Bg _ Âr-zsec,ú )Úendz"avg %g, stddev %g, min %g, max %g ) ÚtimeÚprintr›Z perf_counterrgÚminÚmaxÚroundr€)rZÚfuncr¥r¬rvZsqsumZsmallestZlargestZt0rer0Zt1ZavgZstddevr1r1r2Ú_test_generator¾s&  r²éÐcCsÄ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 ƒt|td ƒdS)Nr1)ggð?)g{®Gáz„?gð?)gš™™™™™¹?gð?)gš™™™™™¹?g@)gà?gð?)gÍÌÌÌÌÌì?gð?)gð?gð?)g@gð?)g4@gð?)gi@gð?)g@g@)ggð?gUUUUUUÕ?) r²rrrrrr!r"r )ÚNr1r1r2Ú_testÔs                rµÚfork)Zafter_in_childÚ__main__)r³)QÚwarningsrr]ÚtypesrrŸrr Zmathrrorr‰rrŒrr”r rnr r€r r�r r‹r r™Úosrr¢Ú_collections_abcrrlrrmZhashlibrrBÚ itertoolsrzrxr|Ú_osÚ__all__rƒrŠr’r“ržr£Z_randomrr)r²rµZ_instrrrr rrrrrr(rrrrrr!r"r#r$r%r&r'ÚhasattrÚregister_at_forkr›r1r1r1r2Ú(sr     Y!