这段代码生成随机数吗?

时间:2015-07-15 22:16:35

标签: python-2.7 computer-science

a = 100
for b in range(10,a):
    c = b%10
    if c == 0:
        c += 3
    c = c*b
    print c

我试图制作一个不使用随机函数的随机生成器,我做了这个,它是否生成随机数?

1 个答案:

答案 0 :(得分:0)

简答:

没有

您的代码将打印

30 11 24 39 56 75 96 119 144 171 60 21 44 69 96 125 156 189 224 261 90 31 64 99 136 175 216 259 304 351 120 41 84 129 176 225 276 329 384 441 150 51 104 159 216 275 336 399 464 531 180 61 124 189 256 325 396 469 544 621 210 71 144 219 296 375 456 539 624 711 240 81 164 249 336 425 516 609 704 801 270 91 184 279 376 475 576 679 784 891 

每一次。

像这样的计算机和程序是确定性的。如果你用笔和纸坐下来,你可以准确地告诉我这些数字中的哪一个会发生,何时会发生。

随机数生成很困难,我建议使用时间来(似乎)随机化输出。

import time
print int(time.time() % 10)

这会给你一个"随机" 0到9之间的数字。

time.time()为您提供自(我相信)纪元时间以来的毫秒数。它是一个浮点数,所以如果我们想要一个"整个"我们必须转换为int。整数。

  

警告:这个解决方案不是真正随机的,而是 更多"随机"方式。