生成包含仅0-1s的数字的随机数len(10)

时间:2015-03-19 17:53:41

标签: python

问题是不言自明的。

我试过了。

import random

number = "".join([str(random.randint(0,1)) for i in xrange(0,10)])
print number

是否有相同的内置功能?

4 个答案:

答案 0 :(得分:12)

使用:

''.join(random.choice('01') for _ in xrange(10))

避免使用int-> str,或以其他方式使用randrange(以排除完整位集),​​范围为2 ** 10,然后格式化为二进制字符串。

format(random.randrange(2**10), '010b')

另外,为避免溢出,您可以使用getrandbits并指定10作为金额,例如:

format(random.getrandbits(10), '010b')

答案 1 :(得分:1)

选择0 ti 1023 包含范围内的随机int,并在基数2中格式化,最小宽度为10,前导0已填入。

format(random.randint(0,1023), '010b')

答案 2 :(得分:0)

我要投入另一个解决方案,创建一个仅包含1和0的实际(十进制)数字:

>>> import random, functools
>>> functools.reduce(lambda x, i: 10 * x + random.randrange(2), range(10), 0)
1011001010

答案 3 :(得分:-1)

OR,跳过十进制二进制转换:

   from random import randint
   def repeat(n): 
    if(n<=0): 
      return '' 
    n -= 1 
    return str(randint(0,1))+repeat(n) 

最后只需调用repeat(10)或任意数量的位。