目前我的python代码是这样的。我试图写一个文件来返回数字,n,8位二进制字符串,但是我被卡住了,因为文件返回的二进制字符串的数量是正确的,但是它们在字符串中不是随机的。即00000000或11111111。在
import random
def eightBitStrings(n):
eightBits = "eightBits.txt"
outputFile = open(eightBits,"w")
for element in range(n):
randomNum = int(random.random()*2)
randomNum = str(randomNum) * 8
outputFile.write(str(randomNum)+"\n")
outputFile.close()
如有任何建议,谢谢!在
问题是当您强制转换为
int
时。在random()
返回一个介于0和1之间的值。将这些值乘以2,就可以将范围扩大到[0,2)。在但是,当你把这些浮点数转换成整数时,你就失去了小数,所以现在你只能生成0和1
然后,当你做}的字符串,它要么是0,要么是1。在
str(randomNum)*8
时,你只是在生成一个包含8个{如果你想保留你当前的代码,你只需要一个额外的循环来生成8个0到1之间的随机数。这就是为什么你得到的字符串要么是8 0,要么是8 1
另一种方法是使用列表理解和
^{pr2}$random.randint()
(它在给定范围内生成整数):这应该是有效的:
您可以生成一个[0255]范围内的数字,然后将其转换为二进制,而不是逐位创建字符串。在
相关问题 更多 >
编程相关推荐