这种生成随机数的方法是否安全有效?

时间:2015-03-28 13:20:55

标签: multithreading random

前几天我正在做一些娱乐性的低级编程,在我的代码中的某个地方出现了这个东西(使用伪代码):

cointoss计划

char out = '0';

void thread(){ out = '1';}

int main(){
   // Creates a thread that will run the function we provided
   // The main() will not wait for this thread to finish
   runInOwnThread(thread);

   printr("%d", out);
   return 0;
}

现在在我们的shell中,我们运行cointoss个程序x次,我们最终会得到这样的结果:

0011011100001000

我们可以转换为十进制并获得一个随机数

我的问题不是这是否是创建随机数的有效方式,而是关于我们可以判断最终结果是否足够随机以供使用

1 个答案:

答案 0 :(得分:2)

不,使用竞争条件不是生成随机数的好方法。结果将是不确定的,但结果很可能会偏重于一个结果。

如果您不关心重量级的值(对您来说足够随机),那么请继续。