使用random_shuffle()算法随机化序列元素
来源:互联网 发布:图片轮播js 编辑:程序博客网 时间:2024/06/05 22:25
以前只知道产生随机数用rand()。今天在修改别人程序时无意看到这么一个函数 random_shuffle(()。上网一查原来还可以这么产生随机数列。采用rand()产生一定范围内的随机数是并不是绝对的平均,可能有些数多有些shus产生指定范围内的随机元素集的最佳方法是创建一个顺序序列(也就是向量或者内置数组),在这个顺序序列中含有指定范围的所有值。例如,如何你需要产生100个0-99之间的数,那么就创建一个向量并用100个按升序排列的数填充向量.
std::vector<int> vectorList;
for (int i=0; i<10; i++)
{
vectorList.push_back(i);
}
填充完向量之后,用random_shuffle()算法打乱元素排列顺序。random_shuffle()定义在标准的头文件<algorithm.h>中。random_shuffle()有两个参数,第一个参数是指向序列首元素的迭代器,第二个参数则指向序列最后一个元素的下一个位置。
random_shuffle(vectorList.begin(), vectorList.end());
对于数组也可以采用这种方法:
int a[10];
for (int i=0; i<10; i++)
{
a[i] = i;
}
random_shuffle(a, a+10);
for (int i=0; i<10;i++)
{
cout<<a[i];
}
注意:
1、是个完全通用的算法-适用于内建的数据类型和用户自定义类型。
2、必须是向量或数组,不能使list等序列。说明此函数可能是对连续内存进行的随机排序(猜测),
所以内存不连续的不行。
- 使用random_shuffle()算法随机化序列元素
- 使用random_shuffle()算法随机化序列元素
- 使用random_shuffle()算法随机化序列元素
- 使用random_shuffle()算法随机化序列元素
- 使用random_shuffle()算法随机化序列元素
- 使用 random_shuffle() 算法随机化序列元素
- 使用random_shuffle()算法随机化序列元素
- 使用 random_shuffle() 算法随机化序列元素
- 用rand_shuffle随机化序列元素
- 序列随机化
- 【随机化算法】蒙特卡罗算法,主元素问题,素数测试问题
- random_shuffle算法小例子
- random_shuffle 和transform算法
- random_shuffle算法小例子
- 随机化算法
- 随机化算法
- 【随机化算法】
- 随机化算法
- Spring 2.0 Map对象DI的几种方法
- 哈安徽省对手的
- web表单制作的建议
- 北大中文核心期刊目录(2004年版)
- IBatisNet -- 保护你的配置文件及映射文件信息
- 使用random_shuffle()算法随机化序列元素
- ASP.NET教程第二讲 ASP.NET控件
- 收集的正则表达式
- 收集一些.NET开发资源站点和部分优秀.NET开源项目
- 好看的烟花程序用TC运行下吧!!
- REBOL学习笔记 eml对象的生成
- C#开发和使用中的23个技巧
- rsync只同步指定文件
- 关于公布部分非法刊物的通知及冀职改办字[2006]48号