pythonrandom扩展随机数函数getrandbits(k)的使⽤
今天⼜是学习python快乐的⼀天,刚刚学到了扩展随机数函数getrandbits(k),⽣成⼀个k⽐特长的随机整数,但完全不懂是什么意思,那就来试验吧:
⾸先来试试andbits(16),看看会输出什么:
>>> andbits(16)
15740
>>> andbits(16)
20602
>>> andbits(16)
43692
>>> andbits(16)
35978
>>> andbits(16)
29532
>>> andbits(16)
28575
可以看到输出了许多上万的整数,再仔细观察发现其中最⼤的⼀个达到了43692。回想⼀下计算机知识1bit是1位,那么在getrandbits函数中给出的参数很可能是它对应的位数。接下来再考虑进制,如果是10进制的16位那么最⾼可以达到千万亿,⽽试验5次最⾼才能够达到43693显然不对,那么感觉⽐较贴近的就是2进制了,我们来算算16位的2进制数最⼤能达到2^16-1=65535。再观察发现getrandbits 函数也没有产⽣负数的随机数,那么可以断⾔getrandbits函数的最⼩值是⼤于或等于0的
有了上⾯的想法我们继续试验,这次换个⼩点的参数2:
>>> andbits(2)
1
>>> andbits(2)
python生成1到100之间随机数>>> andbits(2)
2
>>> andbits(2)
2
>>> andbits(2)
1
>>> andbits(2)
3
经过6次输出刚好输出了0~3范围内的所有数,现在可以下结论了:
python中andbits(k)函数输出的是⼀个0~2^k-1范围内的⼀个随机整数,k表⽰的是2进制的位数