
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a
›  ã                   @   sj  d ddddddddd	d
ddddddgZ ddlZddlZddlZddlmZ ddlmZ 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mZmZmZ ddlmZ ddlmZ G dd„ deƒZdcdd„Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Z d'd(„ Z!ddd*d+„Z"d,d„ Z#d-d„ Z$d.d„ Z%d/d„ Z&d0d„ Z'd1d	„ Z(d2d„ Z)ded4d„Z*d5d
„ Z+d6d„ Z,d7d8d9œd:d„Z-dfd;d<„Z.dgd=d„Z/dhd>d„Z0did?d„Z1djd@d„Z2dAdB„ Z3G dCd „ d ƒZ4zddDl5m3Z3 W n e6k
�rÖ   Y nX e7dEk�rfddFlm8Z8 ddGlm9Z9m:Z:m;Z;m<Z< ddHlm=Z= ddl>Z>e4dIdJƒZ?e4dKdLƒZ@dMZAe? BeA¡ZCe@ BeA¡ZDe9e:fD ]<ZEeFdNeEj7› dO�ƒ eFeEe?e@ƒƒ eFe4 GeHeEeCeDƒ¡ƒ �qNdPZIe9e:e;e<fD ]@ZEeFdNeEj7› dQ�ƒ eFeEe?eIƒƒ eFe4 GeHeEeCe=eIƒƒ¡ƒ �qœdRZIe9e:e;fD ]@ZEeFdSeEj7› dT�ƒ eFeEeIe?ƒƒ eFe4 GeHeEe=eIƒeCƒ¡ƒ �qìdUdV„ ZJe4dWdXƒZKe4dYdZƒZLd[ZMdMZAe4 Gd\d]„ eK BeA¡D ƒ¡ZNeJeKeM eNƒ e4 Gd^d]„ eK BeA¡D ƒ¡ZNeJeKeM eNƒ e4 Gd_d]„ eK BeA¡D ƒ¡ZNeJeKeM eNƒ e4 Gd`d]„ eK BeA¡D ƒ¡ZNeJeKeM eNƒ e4 Gdad]„ eOeK BeA¡eL BeA¡ƒD ƒ¡ZNeJeKeL eNƒ e4 Gdbd]„ eOeK BeA¡eL BeA¡ƒD ƒ¡ZNeJeKeL eNƒ eFe> P¡ ƒ dS )kÚ
NormalDistÚStatisticsErrorÚfmeanÚgeometric_meanÚharmonic_meanÚmeanÚmedianÚmedian_groupedÚmedian_highÚ
median_lowÚmodeÚ	multimodeÚpstdevÚ	pvarianceÚ	quantilesÚstdevÚvarianceé    N©ÚFraction)ÚDecimal)Úgroupby)Úbisect_leftÚbisect_right)ÚhypotÚsqrtÚfabsÚexpÚerfÚtauÚlogÚfsum)Ú
itemgetter)ÚCounterc                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r&   r&   ú//opt/alt/python38/lib64/python3.8/statistics.pyr   u   s   c                 C   s®   d}t |ƒ\}}||i}|j}ttt|ƒƒ}t| tƒD ]@\}}	t||ƒ}tt |	ƒD ]"\}}|d7 }||dƒ| ||< qRq6d |krŠ|d  }
ntdd„ t| 	¡ ƒD ƒƒ}
||
|fS )Nr   é   c                 s   s   | ]\}}t ||ƒV  qd S ©Nr   )Ú.0ÚdÚnr&   r&   r'   Ú	<genexpr>±   s     z_sum.<locals>.<genexpr>)
Ú_exact_ratioÚgetÚ_coerceÚintÚtyper   ÚmapÚsumÚsortedÚitems)ÚdataÚstartÚcountr,   r+   ZpartialsZpartials_getÚTÚtypÚvaluesÚtotalr&   r&   r'   Ú_sum{   s    $
r>   c                 C   s.   z
|   ¡ W S  tk
r(   t | ¡ Y S X d S r)   )Z	is_finiteÚAttributeErrorÚmathZisfinite)Úxr&   r&   r'   Ú	_isfiniteµ   s    
rB   c                 C   s°   | |kr| S |t ks|tkr | S | t kr,|S t|| ƒr:|S t| |ƒrH| S t| t ƒrV|S t|t ƒrd| S t| tƒr|t|tƒr||S t| tƒr”t|tƒr”| S d}t|| j|jf ƒ‚d S )Nz"don't know how to coerce %s and %s)r1   ÚboolÚ
issubclassr   ÚfloatÚ	TypeErrorr#   )r:   ÚSÚmsgr&   r&   r'   r0   ¼   s(       
 
 
 
 r0   c                 C   s°   zrt | ƒtkst | ƒtkr$|  ¡ W S z| j| jfW W S  tk
rn   z|  ¡ W  Y W S  tk
rh   Y nX Y nX W n  ttfk
r’   | d f Y S X d}t	| 
t | ƒj¡ƒ‚d S )Nz0can't convert type '{}' to numerator/denominator)r2   rE   r   Úas_integer_ratioÚ	numeratorÚdenominatorr?   ÚOverflowErrorÚ
ValueErrorrF   Úformatr#   )rA   rH   r&   r&   r'   r.   Û   s    
r.   c                 C   sp   t | ƒ|kr| S t|tƒr(| jdkr(t}z
|| ƒW S  tk
rj   t|tƒrd|| jƒ|| jƒ  Y S ‚ Y nX d S )Nr(   )r2   rD   r1   rK   rE   rF   r   rJ   )Úvaluer:   r&   r&   r'   Ú_convertû   s    

rP   c                 C   s.   t | |ƒ}|t| ƒkr&| | |kr&|S t‚d S r)   )r   ÚlenrM   )ÚarA   Úir&   r&   r'   Ú
_find_lteq  s    
rT   c                 C   s>   t | ||d�}|t| ƒd kr6| |d  |kr6|d S t‚d S )N)Úlor(   )r   rQ   rM   )rR   ÚlrA   rS   r&   r&   r'   Ú
_find_rteq  s     rW   únegative valuec                 c   s$   | D ]}|dk rt |ƒ‚|V  qd S )Nr   )r   )r<   ÚerrmsgrA   r&   r&   r'   Ú	_fail_neg  s    rZ   c                 C   sH   t | ƒ| krt| ƒ} t| ƒ}|dk r,tdƒ‚t| ƒ\}}}t|| |ƒS )Nr(   z%mean requires at least one data point)ÚiterÚlistrQ   r   r>   rP   )r7   r,   r:   r=   r9   r&   r&   r'   r   '  s    c                    st   zt | ƒ‰ W n0 tk
r<   d‰ ‡ fdd„}t|| ƒƒ}Y n
X t| ƒ}z
|ˆ  W S  tk
rn   tdƒd ‚Y nX d S )Nr   c                 3   s    t | dd�D ]\‰ }|V  qd S )Nr(   )r8   )Ú	enumerate)ÚiterablerA   ©r,   r&   r'   r9   O  s    zfmean.<locals>.countz&fmean requires at least one data point)rQ   rF   r    ÚZeroDivisionErrorr   )r7   r9   r=   r&   r_   r'   r   A  s    	
c                 C   s8   zt ttt| ƒƒƒW S  tk
r2   tdƒd ‚Y nX d S )NzHgeometric mean requires a non-empty dataset  containing positive numbers)r   r   r3   r   rM   r   )r7   r&   r&   r'   r   \  s    ÿc                 C   s¶   t | ƒ| krt| ƒ} d}t| ƒ}|dk r2tdƒ‚n<|dkrn| d }t|tjtfƒrf|dk rbt|ƒ‚|S tdƒ‚z"t	dd„ t
| |ƒD ƒƒ\}}}W n tk
r¦   Y dS X t|| |ƒS )Nz.harmonic mean does not support negative valuesr(   z.harmonic_mean requires at least one data pointr   zunsupported typec                 s   s   | ]}d | V  qdS )r(   Nr&   ©r*   rA   r&   r&   r'   r-   –  s     z harmonic_mean.<locals>.<genexpr>)r[   r\   rQ   r   Ú
isinstanceÚnumbersZRealr   rF   r>   rZ   r`   rP   )r7   rY   r,   rA   r:   r=   r9   r&   r&   r'   r   o  s$    
"c                 C   s\   t | ƒ} t| ƒ}|dkr tdƒ‚|d dkr8| |d  S |d }| |d  | |  d S d S ©Nr   úno median for empty dataé   r(   ©r5   rQ   r   )r7   r,   rS   r&   r&   r'   r   ž  s    c                 C   sL   t | ƒ} t| ƒ}|dkr tdƒ‚|d dkr8| |d  S | |d d  S d S rd   rg   ©r7   r,   r&   r&   r'   r
   ¶  s    c                 C   s,   t | ƒ} t| ƒ}|dkr tdƒ‚| |d  S )Nr   re   rf   rg   rh   r&   r&   r'   r	   Ì  s
    r(   c           
      C   sÞ   t | ƒ} t| ƒ}|dkr"tdƒ‚n|dkr2| d S | |d  }||fD ]}t|ttfƒrFtd| ƒ‚qFz||d  }W n( tk
rž   t|ƒt|ƒd  }Y nX t| |ƒ}t	| ||ƒ}|}|| d }	|||d |  |	  S )Nr   re   r(   rf   zexpected number but got %r)
r5   rQ   r   rb   ÚstrÚbytesrF   rE   rT   rW   )
r7   Zintervalr,   rA   ÚobjÚLÚl1Úl2ZcfÚfr&   r&   r'   r   ß  s&    

c                 C   sH   t | ƒ} t| ƒ d¡}z|d d W S  tk
rB   tdƒd ‚Y nX d S )Nr(   r   zno mode for empty data)r[   r"   Úmost_commonÚ
IndexErrorr   )r7   Zpairsr&   r&   r'   r     s    c                 C   s@   t t| ƒƒ ¡ }tt|tdƒd�dg fƒ\}}tttdƒ|ƒƒS )Nr(   )Úkeyr   )r"   r[   rp   Únextr   r!   r\   r3   )r7   ZcountsZmaxcountZ
mode_itemsr&   r&   r'   r   5  s    é   Ú	exclusive)r,   Úmethodc          
      C   sL  |dk rt dƒ‚t| ƒ} t| ƒ}|dk r0t dƒ‚|dkr¢|d }g }td|ƒD ]N}|| | }|| ||  }| | ||  | |d  |  | }	| |	¡ qN|S |dk�r:|d }g }td|ƒD ]r}|| | }|dk rÞdn||d krò|d n|}|| ||  }| |d  ||  | | |  | }	| |	¡ qÂ|S td|›�ƒ‚d S )Nr(   zn must be at least 1rf   z"must have at least two data pointsZ	inclusiveru   zUnknown method: )r   r5   rQ   ÚrangeÚappendrM   )
r7   r,   rv   ZldÚmÚresultrS   ÚjZdeltaZinterpolatedr&   r&   r'   r   l  s4    $
$$c                    sˆ   ˆ d k	r,t ‡ fdd„| D ƒƒ\}}}||fS t| ƒ‰ t ‡ fdd„| D ƒƒ\}}}t ‡ fdd„| D ƒƒ\}}}||d t| ƒ 8 }||fS )Nc                 3   s   | ]}|ˆ  d  V  qdS ©rf   Nr&   ra   ©Úcr&   r'   r-   ®  s     z_ss.<locals>.<genexpr>c                 3   s   | ]}|ˆ  d  V  qdS r|   r&   ra   r}   r&   r'   r-   ±  s     c                 3   s   | ]}|ˆ  V  qd S r)   r&   ra   r}   r&   r'   r-   ´  s     rf   )r>   r   rQ   )r7   r~   r:   r=   r9   ÚUZtotal2Zcount2r&   r}   r'   Ú_ss¥  s    r€   c                 C   sL   t | ƒ| krt| ƒ} t| ƒ}|dk r,tdƒ‚t| |ƒ\}}t||d  |ƒS )Nrf   z*variance requires at least two data pointsr(   ©r[   r\   rQ   r   r€   rP   )r7   Úxbarr,   r:   Ússr&   r&   r'   r   »  s    &c                 C   sH   t | ƒ| krt| ƒ} t| ƒ}|dk r,tdƒ‚t| |ƒ\}}t|| |ƒS )Nr(   z*pvariance requires at least one data pointr�   )r7   Úmur,   r:   rƒ   r&   r&   r'   r   ê  s    #c                 C   s8   t | |ƒ}z
| ¡ W S  tk
r2   t |¡ Y S X d S r)   )r   r   r?   r@   )r7   r‚   Úvarr&   r&   r'   r     s
    	

c                 C   s8   t | |ƒ}z
| ¡ W S  tk
r2   t |¡ Y S X d S r)   )r   r   r?   r@   )r7   r„   r…   r&   r&   r'   r   &  s
    	

c                 C   s  | d }t |ƒdkr°d||  }d| d | d | d | d | d	 | d
 | d | }d| d | d | d | d | d | d | d }|| }|||  S |dkr¼| nd|  }tt|ƒ ƒ}|dk�r^|d }d| d | d | d | d | d | d | d }d| d  | d! | d" | d# | d$ | d% | d }n€|d }d&| d' | d( | d) | d* | d+ | d, | d- }d.| d/ | d0 | d1 | d2 | d3 | d4 | d }|| }|dk �rö| }|||  S )5Nç      à?g333333Û?g…ëQ¸Ç?g^’}o)š£@gäE.kÒRà@g �·Ulð@g*u›†>læ@gçNÍØÑÊ@gÌÀ"]Îž@gnC‹ˆ¤`@guïžÙ@giK˜Ê~j´@gv®±|EÜ@g¾ôdª|1ã@gfRÖÕr·Ô@gŸÈu.2µ@g÷³Èý~y…@gµn8(E@ç      ð?ç        g      @gš™™™™™ù?gé¬·ÀZaI?ggìElëD—?g7\¸¹«òÎ?g²uSÌSô?gÄ=Ë.@gj%b÷@g›±ÊHw…@gjRéýeÆö?gä9dh?>g('ß¿ŒñA?g¿«~z �?g@ð”3õÂ?gÉ…3ò’æ?g3fRæxÒú?gI¤F»ïl @g“¿“ÖtûŠ>g*àYÌÆnü>gESB\T?gçN;A+›?gÏUR1ÙúÒ?gE¤F¦Žü?gP‡nêÚ@g&å>Á±¡@g�Áøñ¿iâ<gà¹@÷Fƒ>g¿tcI,\ó>g×Å�—¼ÈI?g*F2ùvŽ?gûC4ë†Á?g×ÇOÓ1ã?)r   r   r   )Úpr„   ÚsigmaÚqÚrZnumZdenrA   r&   r&   r'   Ú_normal_dist_inv_cdf9  sd   ÿÿþþýýüüûûúúùùÿÿþþýýüüûûúúù
ÿÿþþýýüüûûúúùÿÿþþýýüüûûúúù	ÿÿþþýýüüûûúúùÿÿþþýýüüûûúúù
r�   c                   @   sø   e Zd ZdddœZd7dd„Zedd	„ ƒZd
dœdd„Zdd„ Zdd„ Z	dd„ Z
d8dd„Zdd„ Zedd„ ƒZedd„ ƒZedd„ ƒZedd „ ƒZed!d"„ ƒZd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ ZeZd/d0„ ZeZd1d2„ Zd3d4„ Zd5d6„ Zd
S )9r   z(Arithmetic mean of a normal distributionz+Standard deviation of a normal distribution)Ú_muÚ_sigmarˆ   r‡   c                 C   s(   |dk rt dƒ‚t|ƒ| _t|ƒ| _d S )Nrˆ   zsigma must be non-negative)r   rE   rŽ   r�   )Úselfr„   rŠ   r&   r&   r'   Ú__init__�  s    
zNormalDist.__init__c                 C   s.   t |ttfƒst|ƒ}t|ƒ}| |t||ƒƒS r)   )rb   r\   Útupler   r   )Úclsr7   r‚   r&   r&   r'   Úfrom_samples”  s    zNormalDist.from_samplesN)Úseedc                   sB   |d krt jn
t  |¡j‰ | j| j ‰‰‡ ‡‡fdd„t|ƒD ƒS )Nc                    s   g | ]}ˆ ˆˆƒ‘qS r&   r&   ©r*   rS   ©Úgaussr„   rŠ   r&   r'   Ú
<listcomp>   s     z&NormalDist.samples.<locals>.<listcomp>)Úrandomr˜   ZRandomrŽ   r�   rw   )r�   r,   r•   r&   r—   r'   Úsamplesœ  s    zNormalDist.samplesc                 C   s<   | j d }|stdƒ‚t|| j d d|  ƒtt| ƒ S )Nç       @z$pdf() not defined when sigma is zerog       À)r�   r   r   rŽ   r   r   )r�   rA   r   r&   r&   r'   Úpdf¢  s    
zNormalDist.pdfc                 C   s2   | j stdƒ‚ddt|| j | j tdƒ  ƒ  S )Nz$cdf() not defined when sigma is zeror†   r‡   rœ   )r�   r   r   rŽ   r   )r�   rA   r&   r&   r'   Úcdf©  s    zNormalDist.cdfc                 C   s:   |dks|dkrt dƒ‚| jdkr*t dƒ‚t|| j| jƒS )Nrˆ   r‡   z$p must be in the range 0.0 < p < 1.0z-cdf() not defined when sigma at or below zero)r   r�   r�   rŽ   )r�   r‰   r&   r&   r'   Úinv_cdf¯  s
    

zNormalDist.inv_cdfrt   c                    s   ‡ ‡fdd„t dˆ ƒD ƒS )Nc                    s   g | ]}ˆ  |ˆ  ¡‘qS r&   )rŸ   r–   ©r,   r�   r&   r'   r™   È  s     z(NormalDist.quantiles.<locals>.<listcomp>r(   )rw   )r�   r,   r&   r    r'   r   ¿  s    	zNormalDist.quantilesc                 C   s  t |tƒstdƒ‚| | }}|j|jf|j|jfk r>|| }}|j|j }}|rT|s\tdƒ‚|| }t|j|j ƒ}|s–dt|d|j t	dƒ  ƒ S |j| |j|  }|j|j t	|d |t
|| ƒ  ƒ }	||	 | }
||	 | }dt| |
¡| |
¡ ƒt| |¡| |¡ ƒ  S )Nz$Expected another NormalDist instancez(overlap() not defined when sigma is zeror‡   rœ   )rb   r   rF   r�   rŽ   r   r   r   r   r   r   rž   )r�   ÚotherÚXÚYZX_varZY_varZdvZdmrR   ÚbÚx1Úx2r&   r&   r'   ÚoverlapÊ  s"    


(zNormalDist.overlapc                 C   s   | j S r)   ©rŽ   ©r�   r&   r&   r'   r   ì  s    zNormalDist.meanc                 C   s   | j S r)   r¨   r©   r&   r&   r'   r   ñ  s    zNormalDist.medianc                 C   s   | j S r)   r¨   r©   r&   r&   r'   r   ö  s    zNormalDist.modec                 C   s   | j S r)   ©r�   r©   r&   r&   r'   r   ÿ  s    zNormalDist.stdevc                 C   s
   | j d S )Nrœ   rª   r©   r&   r&   r'   r     s    zNormalDist.variancec                 C   s8   t |tƒr&t| j|j t| j|jƒƒS t| j| | jƒS r)   ©rb   r   rŽ   r   r�   ©r¥   r¦   r&   r&   r'   Ú__add__	  s    

zNormalDist.__add__c                 C   s8   t |tƒr&t| j|j t| j|jƒƒS t| j| | jƒS r)   r«   r¬   r&   r&   r'   Ú__sub__  s    

zNormalDist.__sub__c                 C   s   t | j| | jt|ƒ ƒS r)   ©r   rŽ   r�   r   r¬   r&   r&   r'   Ú__mul__%  s    zNormalDist.__mul__c                 C   s   t | j| | jt|ƒ ƒS r)   r¯   r¬   r&   r&   r'   Ú__truediv__-  s    zNormalDist.__truediv__c                 C   s   t | j| jƒS r)   ©r   rŽ   r�   ©r¥   r&   r&   r'   Ú__pos__5  s    zNormalDist.__pos__c                 C   s   t | j | jƒS r)   r²   r³   r&   r&   r'   Ú__neg__9  s    zNormalDist.__neg__c                 C   s
   | |  S r)   r&   r¬   r&   r&   r'   Ú__rsub__?  s    zNormalDist.__rsub__c                 C   s&   t |tƒstS | j|jko$| j|jkS r)   )rb   r   ÚNotImplementedrŽ   r�   r¬   r&   r&   r'   Ú__eq__E  s    
zNormalDist.__eq__c                 C   s   t | j| jfƒS r)   )ÚhashrŽ   r�   r©   r&   r&   r'   Ú__hash__K  s    zNormalDist.__hash__c                 C   s    t | ƒj› d| j›d| j›d�S )Nz(mu=z, sigma=ú))r2   r#   rŽ   r�   r©   r&   r&   r'   Ú__repr__O  s    zNormalDist.__repr__)rˆ   r‡   )rt   )r#   r$   r%   Ú	__slots__r‘   Úclassmethodr”   r›   r�   rž   rŸ   r   r§   Úpropertyr   r   r   r   r   r­   r®   r°   r±   r´   rµ   Ú__radd__r¶   Ú__rmul__r¸   rº   r¼   r&   r&   r&   r'   r   ƒ  sD   þ


"




)r�   Ú__main__)Úisclose)ÚaddÚsubÚmulÚtruediv)Úrepeaté
   é   éûÿÿÿé   i † z
Test z with another NormalDist:é   z with a constant:é   z
Test constant with ú:c                 C   s   d S r)   r&   )ÚG1ÚG2r&   r&   r'   Úassert_close  s    rÒ   i—ÿÿÿéI   é   é/   g     `@@c                 C   s   g | ]}|t  ‘qS r&   ©Úsra   r&   r&   r'   r™   ˆ  s     r™   c                 C   s   g | ]}|t  ‘qS r&   rÖ   ra   r&   r&   r'   r™   ‹  s     c                 C   s   g | ]}|t  ‘qS r&   rÖ   ra   r&   r&   r'   r™   Ž  s     c                 C   s   g | ]}|t  ‘qS r&   rÖ   ra   r&   r&   r'   r™   ‘  s     c                 C   s   g | ]\}}|| ‘qS r&   r&   ©r*   rA   Úyr&   r&   r'   r™   ”  s     c                 C   s   g | ]\}}|| ‘qS r&   r&   rØ   r&   r&   r'   r™   ˜  s     )r   )rX   )r(   )N)N)N)N)N)QÚ__all__r@   rc   rš   Z	fractionsr   Údecimalr   Ú	itertoolsr   Zbisectr   r   r   r   r   r   r   r   r   r    Úoperatorr!   Úcollectionsr"   rM   r   r>   rB   r0   r.   rP   rT   rW   rZ   r   r   r   r   r   r
   r	   r   r   r   r   r€   r   r   r   r   r�   r   Z_statisticsÚImportErrorr#   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   ZdoctestZg1Zg2r,   r›   rÐ   rÑ   ÚfuncÚprintr”   r3   ZconstrÒ   r¢   r£   r×   rG   ÚzipZtestmodr&   r&   r&   r'   Ú<module>T   sÒ   ï(
: 

/
779

/
,

J Q






ÿ
ÿ
