#include<iostream>
#include<ctime>
#include<random>
using namespace std;
void knuth(int n, int m)
{
srand((unsigned int)time(NULL));
for (int i = ; i < n; i++) {
/* 注意到在整个for循环中,随机数种子已经固定,rand()
的值是不变的
这里n必须减去i,否则很有可能产生的随机数量小于n
*/
if (rand() % (n - i) < m ) {
cout << i << endl;
--m;
}
}
} int main()
{
knuth(, );
return ;
}

上述程序是假设m远远大于n!

最新文章

  1. linux 系统内核空间与用户空间通信的实现与分析&lt;转&gt;
  2. 8.SpringMVC参数传递
  3. 【转】【C#】ColorMatrix
  4. CSS之生成全屏背景图片
  5. CC++初学者编程教程(15) 基于cocos2dx的安卓打包环境
  6. Linux下安装mysql(yum和源码编译两种方式)
  7. 机器学习--------SVM
  8. pyinstaller打包pyqt文件(转)
  9. hdu 6053 TrickGCD 筛法
  10. Lamda 表达式里的Join和GroupJoin的区别, 如何实现SQL的Left Join效果
  11. [BUG随想录] 看不见的分隔符: Zero-width space
  12. 预习 jdbc 技术简介
  13. Django学习笔记之form组件的局部钩子和全局钩子
  14. TableLayout 中不显示动态添加的tableRow
  15. Python 日常学习
  16. C++堆和栈详解(转)
  17. 高仿JDK动态代理 底层源码实现
  18. (转)shell中test命令方法详解
  19. xtarbackup恢复
  20. windows和Dos常见命令总结

热门文章

  1. Daily Scrum NO.2
  2. 《linux内核设计与实现》第二章
  3. RYU 灭龙战 fourth day (1)
  4. Spark 实践——基于 Spark MLlib 和 YFCC 100M 数据集的景点推荐系统
  5. Office处理
  6. PAT乙级(Basic Level)练习题-NowCoder数列总结
  7. Cheerleaders UVA - 11806(容斥+二进制技巧)
  8. C++11 自动推导auto
  9. linux运行sh文件提示 permission denied
  10. 解题:NOI 2010 超级钢琴