试图找到一个完全随机数发生器

Dch*_*ris 5 c unix windows random time

我在C工作,我正在努力(拼命)制作一个随机发生器,每次运行发生器时不仅生成不同的数字,而且每次运行程序时都会生成不同的序列.我测试了几乎我在网上找到的所有内容.我导致了两种制作好的随机发生器的好方法.第一个是每次都使用不同的种子.但这意味着我每次都必须使用一个不同的随机种子,这是我一开始没有解决的问题.这就是我现在正在尝试的但是它不是真的随便我想要的:

int myrand(int random_seed){
  random_seed = random_seed * 1103515245 +12345;   
  return (unsigned int)(random_seed / 65536) % 32768; 
                           }
Run Code Online (Sandbox Code Playgroud)

每当我调用该函数时,我将种子增加1.

第二种方式是使用time.Time更改,这是随机性.我也尝试了很多方法来实现这一点.我最近的尝试在这里: 编译器错误 - 可能的IDE错误"未定义引用gettimeofday错误" 但我无法使用gettimeofday函数,因为我在Windows中工作.在那个问题中,我没有得到任何答案.

任何人都可以帮助我如何在C中使用Windows实现随机生成器(可能使用时间)?或者我应该使用Unix?

evi*_*tto 4

为您的 RNG 播种良好的熵源。

在unix下,使用/dev/random。

在 Windows 下,使用 CryptoAPI 之类的东西 - Windows 相当于 /dev/random