此代码会生成随机数吗?

does this code generate random numbers?

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

我试图在不使用随机函数的情况下制作一个随机生成器,我做了这个,它会生成随机数吗?

简答:

没有

您的代码将打印

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 

每次。

像这样的计算机和程序是确定性的。如果你坐下来拿着笔和纸,你可以准确地告诉我这些数字中的哪一个会出现,它们会在什么时候出现。

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

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

这将为您提供一个介于 0 和 9 之间的 "random" 数字。

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

Caveat: This solution is not truly random, but will act in a much more "random" fashion.