Message343094
| Author |
Mathis Hammel |
| Recipients |
Mathis Hammel, mark.dickinson, rhettinger |
| Date |
2019年05月21日.20:50:16 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1558471816.52.0.343821776026.issue37000@roundup.psfhosted.org> |
| In-reply-to |
| Content |
In case _randbelow_with_getrandbits is called with a power of two as its argument (say 2^k), the function will consume k+1 random bits instead of k.
Instead of never being rejected, the sampled number will be rejected on average once per call, causing a computational overhead in addition to wasting k+2 bits on average.
This is due to taking n.bit_size() instead of (n-1).bit_size() for the size of the random candidates. Using n instead of n-1 is apparently deliberate in order to save the case where n = 1, but this could be avoided by directly returning 0 if n == 1. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2019年05月21日 20:50:16 | Mathis Hammel | set | recipients:
+ Mathis Hammel, rhettinger, mark.dickinson |
| 2019年05月21日 20:50:16 | Mathis Hammel | set | messageid: <1558471816.52.0.343821776026.issue37000@roundup.psfhosted.org> |
| 2019年05月21日 20:50:16 | Mathis Hammel | link | issue37000 messages |
| 2019年05月21日 20:50:16 | Mathis Hammel | create |
|