C++产生固定范围内的固定数量的随机数

 1 #include<iostream>
 2 #include<ctime>
 3 #include<random>
 4 using namespace std;
 5 void knuth(int n, int m)
 6 {
 7     srand((unsigned int)time(NULL));
 8     for (int i = 0; i < n; i++) {
 9         /*  注意到在整个for循环中,随机数种子已经固定,rand()
10             的值是不变的
11             这里n必须减去i,否则很有可能产生的随机数量小于n
12         */
13         if (rand() % (n - i) < m ) {
14             cout << i << endl;
15             --m;
16         }
17      }
18 }
19
20 int main()
21 {
22     knuth(1000, 10);
23     return 0;
24 }

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

时间: 2024-08-12 04:40:45

C++产生固定范围内的固定数量的随机数的相关文章

固定的时间去做固定的事情

要坚持做一件事情,其实是需要意志力——也就是自我控制自己行为的能力.而绝大部分人,包括我在内,天生都是有意志薄弱的时刻,能总是做到自我控制是很难的. 很多大学生来信给我诉说一样苦恼:就是不管做什么事情都容易半途而废,不能坚持到底. 特别郁闷的是有同学说:我发现自己以前做一件事还能坚持到最后,现在大学了就不能坚持下去,有什么好办法解决吗? 要坚持做一件事情,其实是需要意志力——也就是自我控制自己行为的能力.而绝大部分人,包括我在内,天生都是有意志薄弱的时刻,能总是做到自我控制是很难的. 为什么这位

【Java】利用Collections类下的shuffle洗牌方法改进在一定的范围内产生不重复的随机数

上次在<[Java]在一定的范围内产生不同的随机数>(点击打开链接)上所提到的方法,尽管已经解决了一定范围内产生不同随机数的问题,运行速度已经可以的,至少不会弄很久都弄不好,其实利用Collections类下的shuffle方法思想可以更清晰.速度更快地在一定的范围内产生不同的随机数. Collections类下的shuffle方法是可以随机打乱一个数组中的元素的程序,也叫做洗牌方法. 有这个方法,配合我在<[Java]Java中的Collections类--Java中升级版的数据结构&

对配置文件内的固定内容加密解密

接到一个需求,背景是对公司的各个服务器环境下的配置文件内存有数据库用户名,数据库密码,因为在配置文件中,许多shell脚本都需要调用配置文件中的数据库用户名,密码,所以一直以明文保存,需求内容就是实现对配置文件内的用户名,密码加密,同时加密后要解决shell脚本文件还可以调用到正确的用户名密码,因此还需要解密. 因为是在服务器环境下,所以可以编写java程序,然后将程序打成jar包,通过shell指令调用jar包实现加密与解密. 因为要实现逆向解密,所以没有采用MD5,只能用比较老的DES或者A

bootstrap入门-2.固定的内置样式

HTML5文档类型(Doctype) Bootstrap使用了一些HTML5元素和CSS属性,所以需要使用HTML5文档类型. <!DOCTYPE html> <html> .... </html> 移动设备优先 <meta name=”viewport” content=”width=device-width, initial-scale=1.0”> 宽度设置为device-width可以确保它能正确呈现在不同设备上. initial-scale=1.0确

固定容器内任意个div填充算法

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> </title> <style> #box{ height: 600px; width: 600px; border: 1px solid black; } </sty

【居中系列】大小不固定的图片在固定容器中的水平垂直居中

一般在做产品页面的时候,如果产品图片宽高定死的话,有的图片就会变形,如果把宽给个最大宽,高自适应的话有的图又会由于是个长方形高超出了容器,这样就不得不截掉一部分图.于是就想着,首先不管图片是个什么比例,不管它是宽远大于高或者高远大于宽,统一设置最大的宽高值,不让它超出容器,并且这样处理图片不会变形.接下来想怎么处理图片大小不定,在固定容器中水平垂直居中的问题. 参考链接: 张鑫旭:大小不固定的图片和多行文字的垂直水平居中 w3cplus大漠:css制作图片水平垂直居中 对比了一下他们的方法,发现

CiscoIPSEC –无固定IP 总部有固定IP—ID(分支机构ID—hostname 总部来区分

总部R5 : PC4-inside F0/1 NAT F0/0 outside分部R4 : PC5- inside F0/1 NAT F0/0 outside 分部R6 : PC6- inside F0/1 NAT F0/0 outside 说明:R4:pre-share key 123456 localid:CiscoAR6:pre-share key 1234567 localid:CiscoCR5 作为总部仅仅允许相应ID 对应相应的网络访问.采用野蛮模式互通时,作为隧道发起方和响应方的配

[算法] 固定的元素在固定长度上进行全排列

题目1:打印从1到最大n位数的所有数字.比如n是3,则打印1,2,3,4...999. 题目2:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s的所有可能值出现的概率. ---------------- 对于题目1,由于n的值可能会很大,所以直接print是不行的,没有一个数据类型可以承载大n.对于题目2,求概率就是求点数和为s的投掷出现的次数.这两个题目有一个共同点,它们都与一种序列有关系,这个序列可以描述为:有n个盒子,每个盒子里面都可以放x1到xn的任意一个数,输出所有

固定表格布局,固定列的宽度,溢出字隐藏

一. <html><head><style type="text/css">table.two{table-layout: fixed}</style></head><body><table class="two" border="1" width="100%"><tr><td width="20%">