第十五周项目二洗牌二
2016-06-24 12:40
363 查看
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:main.cpp *作 者:闫舒 *完成日期:2016年6月24日 *版 本 号:vc++6.0 * *问题描述:随机交换两个位置的元素来洗牌。 *输入描述: *程序输出: */ #include <ctime> #include <vector> #include <iterator> #include <algorithm> #include <iostream> using namespace std; typedef vector<int> IntVector; void SwapShuffle(IntVector &datas, int time) { unsigned size=datas.size(),p1,p2; while(time--) { p1=rand()%size; p2=rand()%size; swap(datas[p1],datas[p2]); } } int main() { ostream_iterator <int> os(cout," "); srand(time(NULL)); vector <int> poker; for(int i=1; i<=54; i++) { poker.push_back(i); } cout<<"Before Shuffle"<<endl; copy(poker.begin(),poker.end(),os); cout<<endl; SwapShuffle(poker,100); cout<<"\nAfter Shuffled"<<endl; copy(poker.begin(),poker.end(),os); cout<<endl<<endl; return 0; }
运行结果:
注:
函数中time是要执行交换的次数,如果是54张牌的话,交换次数大于27的话就已经表现出很随机的排列了。
相关文章推荐
- python 虚拟环境
- 测试
- 解析json
- 飛飛(终极版)关于贺利坚贺老师的感受和总结
- Servlet3.0学习总结(二)——使用注解标注过滤器(Filter)
- 开发者和程序员需要关注的42个播客
- ANDROID版本号和版本名称的重要性介绍
- wireshark https 抓包
- HttpClient使用详解
- JS组件系列——表格组件神器:bootstrap table
- Servlet3.0学习总结(一)——使用注解标注Servlet
- 歌曲《圣诞节十二天》歌词打印("The Twelve Days of Christmas" Song)
- leetcode 78. Subsets
- (转)linux虚拟内存管理简要总结
- [JAVA]定时任务之-Quartz使用篇
- $Java正则表达式基础整理
- mysql 用户访问权限问题
- Python 小练习 文本替代
- log4j 报 No such property [maxFileSize]问题
- cocos-lua问题记录