📄 wsrandom.cpp
字号:
#include "StdAfx.h"
#include ".\wsrandom.h"
WSRandom::WSRandom(void)
{
}
WSRandom::~WSRandom(void)
{
}
/*
功能:利用计算机,从概率上决定某事件的发生与否
输入:预设概率值-->Float型
输出:TRUE-->事件发生 FALSE-->事件不发生
注:
1、RAND_MAX:0x7fff
2、符合预定概率的精确度:0.00001 即 0.001%
3、 若使用rand()%10000将得不到较好的概率模拟值,
因为rand()值的后四位偏向小于2767的数,故所得概率会偏大。
*/
BOOL WSRandom::JudgeEven(FLOAT _probability)
{
if(_probability <= 0) return FALSE;
FLOAT l_Value = (FLOAT)rand()/RAND_MAX;
if(l_Value < _probability) return TRUE;
return FALSE;
}
/*
功能:生成随即数的种子值,目的是保证每次使用的随机数都不一样,拟真随机数
输入:无
输出:无
注:
1、该处利用了时间的不断变化来产生不同的种子值
*/
VOID WSRandom::Initial()
{
DWORD l_CurTime = GetCurrentTime();
srand(l_CurTime);
}
/*
功能:设定最小值和最大值,生成介于他们的随机数
输入:最小值-->Int型 最大值-->Int型
输出:所得随机数
注:
1、 生成函数:(INT)( _low + ((_high - _low + 0.999) * (FLOAT)rand()/RAND_MAX) )
0.0--1.1之间
*/
INT WSRandom::GenRand(INT _low, INT _high)
{
return (INT)( _low + ((_high - _low + 0.999) * (FLOAT)rand()/RAND_MAX) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -