C++关于随机数的小问题,麻烦您帮我看一下,谢谢
#include <cstdlib>
inline int random(int count) {
return
1 + static_cast<int>( (count*static_cast<double>(rand())) ) /(RAND_MAX+1.0);
}
我不明白这个函数:
static_cast是个什么样的关键字?
static_cast<int>又是什么意思?
RAND_MAX又是什么样的宏?
这个函数的功能是什么?
非常感谢!!!
[解决办法]
1.static_cast<type>(expression)
例如,假设你想把一个int转换成double,以便让包含int类型变量的表达式产生出浮点数值的结果。如果用C风格的类型转换,你能这样写:
int firstNumber, secondNumber;
...
double result = ((double)firstNumber)/secondNumber;
如果用上述新的类型转换方法,你应该这样写:
double result = static_cast<double>(firstNumber)/secondNumber;
这样的类型转换不论是对人工还是对程序都很容易识别。
static_cast在功能上基本上与C风格的类型转换一样强大,含义也一样。它也有功能上限制。例如,你不能用static_cast象用C风格的类型转换一样把struct转换成int类型或者把double类型转换成指针类型.
2. RAND_MAX你自己定义的宏
3. 函数返回int型的随机数