今天的学习笔记
1.
基本的随机数生成函数srand(参数),参数表示的是生成种子,如果种子不变的话,随机序列也不会变,常用srand(time(NULL))
即系统时间来生成种子,由于时间一直在变,所以生成的种子也在变。使用时间要#include<ctime>
2.
生成互不相同的随机数
这里插入容器的使用,引用自https://www.cnblogs.com/cxq0017/p/6555533.html
1.定义和初始化
vector<int> vec1; //默认初始化,vec1为空
vector<int> vec2(vec1); //使用vec1初始化vec2
vector<int> vec3(vec1.begin(),vec1.end());//使用vec1初始化vec2
vector<int> vec4(10); //10个值为0的元素
vector<int> vec5(10,4); //10个值为4的元素
//2.常用操作方法
vec1.push_back(100); //尾部添加元素
int size = vec1.size(); //元素个数
bool isEmpty = vec1.empty(); //判断是否为空
cout<<vec1[0]<<endl; //取得第一个元素
vec1.insert(vec1.end(),5,3); //从vec1.back位置插入5个值为3的元素
vec1.pop_back(); //删除末尾元素
vec1.erase(vec1.begin(),vec1.begin()+2);//删除vec1[0]-vec1[2]之间的元素,不包括vec1[2]其他元素前移
cout<<(vec1==vec2)?true:false; //判断是否相等==、!=、>=、<=...
vector<int>::iterator iter = vec1.begin(); //获取迭代器首地址
vector<int>::const_iterator c_iter = vec1.begin(); //获取const类型迭代器
vec1.clear(); //清空元素
//3.遍历
//下标法
int length = vec1.size();
for(int i=0;i<length;i++)
{
cout<<vec1[i];
}
cout<<endl<<endl;
//迭代器法
vector<int>::iterator iter = vec1.begin();
for(;iter != vec1.end();iter++)
{
cout<<*iter;
}
使用数组要#include<vector>
使用random_shuffle(数组.begin(),数组.end())函数打乱数组顺序,('\n'为转义字符)
需要#include <algorithm> 包含random_shuffle的库
这个函数貌似只能用容器数组。
3.
产生01随机矩阵
把范围限定在(0,1),用时间序列