随机数字双重类型
Random numbers double type
我在书中有一个练习,这使我通过一系列尝试的尝试使我难以理解答案,这花了我几个小时才能配置出来。我是C 的新手,并且根本无法编程,这使我缺乏知识(实际上我在家中在家中学习(。因此,我有几个问题,希望您可以回答它们,并在正确的位置"资产"我的大脑。
在问题之前,练习是:
"编写一个随机数发电机,该发电机返回随机浮点 数量在0.0到1.0之间。(提示:致电兰德,将结果r施放为键入 通过使用static_cast(R(来倍,然后除以最高值 在int范围内,rand_max。(确保您用 双返回类型。"。
问题:
-
srand(time(nullptr))
背后的主要功能/想法是什么?我不断收到C4244的警告("参数":从'time_t'转换为" unsigned int"(。我正在搜索答案,我发现问题在srand
命令中...请有人可以解释吗? -
我对
static_cast
和所有其他3种铸造类型都不清楚。我知道在static_cast
中,我可以从括号到左侧的括号定义一种新的枚举类型:static_cast<double>(r)
。但是,每个铸件的限制/定义是什么(dynamic_cast
,reinterpret_cast
和const_cast
(?我什么时候使用它们? -
我发现我必须在(
RAND_MAX
(语句之前声明双重,但是我不知道为什么它必须是双倍而不是int或float?RAND_MAX
背后的主要思想是什么?
这是我写的代码(注意:我正在使用#include "stdafx.h"
pre标头,而在书中没有任何提及(:
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
double rand_(int r);
int main() {
int n;
double r;
cout << " choose a number: ";
cin >> n;
srand(time(nullptr));
for (int i = 0; i <= n; i++) {
r = rand_(n) ;
cout << r << " ";
}
return 0;
}
double rand_(int r) {
static_cast<double>(r);
return rand() / double(RAND_MAX);
}
如果您注意到基本编码的任何"许可"错误,请纠正我。
感谢所有回答和支持这篇文章的人。希望将来也可以做同样的事情。
srand(time(nullptr));
它用于初始化伪随机数生成器,并从当前时间获得种子(每次运行Ptogramm时,都会获得不同的运行量数(。srand((接受未静止的int参数,time((return time_t,所以这是您有关转换的警告。
rand() / double(RAND_MAX)
rand((返回整数值,rand_max是整数常数,因此要获取浮点部门,而不是整数部门rand_max进行对话到浮点类型。
至于何时使用哪种类型的铸件,我敢肯定,您可以找到有关So或cppreference上每个特定铸件的信息。
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 你能在 c++ 中将不同的数字类型加在一起吗?
- 输出一个数字,该数字可能是三种类型之一
- 如何用不同的参数类型和数字回调函数
- C/C++ - 用于按顺序打印数字的 sem_t 类型的单个信号量
- typeid.name 返回派生类类型之前的数字
- C++小数点后有 200 位数字的类型?
- 常量整数变量和数字的不同类型推导
- 检测<T>某些非数字类型 T 的 std::numeric::type 的特化
- 随机数字双重类型
- 当数字可能超出C++中特定数据类型的范围时如何处理异常?
- 为什么数字类型只有"to_string()"?
- 如何在数字大于类型 size_t 的最大数量时使用 std::bitset
- C++从文件中读取不同类型的数据,直到有一个以数字开头的字符串
- 从 std::stringstream 读取uint8_t为数字类型
- 如何检查 stdin 中的数字是否小于给定类型的数字限制
- 创建一个带有限制的数字数据类型,一个介于 -10 和 10 之间的整数
- 无符号窄字符类型数字表示
- c++中对包含双精度类型数字的数组进行排序的最快方法是什么?