不使用系统提供的函数,怎样生成一个32位随机数,该如何解决
不使用系统提供的函数,怎样生成一个32位随机数
不使用系统提供的函数 ,怎样生成一个32位随机数?
并且基本上不管同一台电脑还是不同的电脑上,生成都不同.
谢谢.
------解决方案--------------------
方法倒是想到一个,以某个硬件序列号+时间生成出来的数字应该不会重。
------解决方案--------------------
软件生成的随机数估计都是取一些数值算出来的,不是真正意义随机,包括系统提供的。记得还有随机数生成器这么一种硬件就是用来生成真正随机数的。所以这个随便取一些能保证每次不全相同的数估计就可以了。取时间是比较省心的一部分。
------解决方案--------------------
你拿什么做种子,你拿什么来随机?想清楚了,问题自然就解决了!
------解决方案--------------------
楼主的意思可能就是不使用srand和rand这两个函数。
------解决方案--------------------
我用QueryPerformanceCounter
__int64 Random(__int64 Min, __int64 Max)
{
LARGE_INTEGER li;
QueryPerformanceCounter(&li);
return li.QuadPart%(Max-Min+1)+Min;
}
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
增加一个线程 线程自由的修改值即可 冲突的几率肯定有 不过随机就是这样 最好的方法还加入HOOK键盘输入 可以根据按下的建进行运算 随机就产生了
不使用系统提供的函数 ,怎样生成一个32位随机数?
并且基本上不管同一台电脑还是不同的电脑上,生成都不同.
谢谢.
------解决方案--------------------
方法倒是想到一个,以某个硬件序列号+时间生成出来的数字应该不会重。
------解决方案--------------------
软件生成的随机数估计都是取一些数值算出来的,不是真正意义随机,包括系统提供的。记得还有随机数生成器这么一种硬件就是用来生成真正随机数的。所以这个随便取一些能保证每次不全相同的数估计就可以了。取时间是比较省心的一部分。
------解决方案--------------------
你拿什么做种子,你拿什么来随机?想清楚了,问题自然就解决了!
------解决方案--------------------
楼主的意思可能就是不使用srand和rand这两个函数。
------解决方案--------------------
我用QueryPerformanceCounter
__int64 Random(__int64 Min, __int64 Max)
{
LARGE_INTEGER li;
QueryPerformanceCounter(&li);
return li.QuadPart%(Max-Min+1)+Min;
}
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
增加一个线程 线程自由的修改值即可 冲突的几率肯定有 不过随机就是这样 最好的方法还加入HOOK键盘输入 可以根据按下的建进行运算 随机就产生了