今天看到一段代码,可以从0.....n-1中随机等概率的输出m个不重复的数(n远远大于m).遂记录下来. 首先,产生随机数,不免要用到srand,rand函数.先简单介绍下两个函数. 1,void srand(unsigned int seed):  初始化随机数生成器,对于每一个不同的seed,每一次调用rand()将会产生不同的随机数序列. 特别的,当seed == 1时,生成器将会被重新初始化以前的初始化值,那么下次rand产生的随机数将会和第一次rand()相同. 所以,为了产生真正的随…
#include <stdlib.h> #include <time.h> knuth(int n, int m) { srand((unsigned )); ; i < n; i++) { if (rand()%(n-i)<m ) { cout << i << endl; m--; } } } 为了方便解释假设n等于10,m等于5:第一次rand()%(n-0)的余数范围是0~9,有可能小于m(=5),可以输出i=0:随后i++,m--第二次r…
void knuth(int n, int m) { srand((unsigned) time( NULL)); for (int i = 0; i < n && m; i++) { //满足限定条件:rand() % (n - i) < m,即输出i,i递增不重复 if (rand() % (n - i) < m) { cout << i << "\t"; m--; } // end if } //end for retur…
package text1; import java.util.ArrayList; import java.util.HashSet; /* * 要求产生10个随机的字符串, * 每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同, * 每个字符串长度为10; */ public class Example { //先设置一个集合用来存储要随机的数据 public static ArrayList<Character> getContainer(){ //建立一个…
题目是这样的,Linux中一个文件10行内容,如何输出5-8内容到屏幕首先我们模拟一下这样的环境: [root@localhost question]# pwd /root/question [root@localhost question]# seq > q.txt [root@localhost question]# cat q.txt 我们的任务是取5-8行输出: 第一种方法: [root@localhost question]# sed -n '5,8p' q.txt 第二种方法: [r…
python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明. 重难点:通过input函数输入的行消息为字符串格式,必须转换为整型,否则不能进行排序交换位置.通过索引的方式可以查看字符串中的每一个字符,双层for循环进行冒泡排序.for循环的倒序输出方式:for z in range(9,1,-1):.break直接跳出循环.通过标志位判断是否输出过奇数. print("————————————————————————————&qu…
返回本章节 返回作业目录 需求说明: 编写JAVA程序,在控制台中输入六位员工的姓名,通过随机点名方式,输出当选组长的员工姓名. 实现思路: (1)定义字符串类型的数组names,长度为6,用于存储六位员工的姓名. (2)使用循环结构,依次接收用户输入的员工姓名,为数组names赋值. (3)声明int类型变量index,用于存储所产生的随机数,随机数必须在0-5之间,产生随机数的代码如下: Random rdm = new Random(); index = rdm.nextInt(6); (…
此为工具类,支持抽奖业务需求,具体实现见下方代码: package com.org.test; import java.util.ArrayList; import java.util.List; public class RandomUtil { /** * 随机抽出中奖用户下标 * 当max < count时,输出max+1个, 如 0,2,5 输出3个结果 * 当max = count时,输出 count个, 如 0,2,2 输出2个结果 * 当max > count 时,输出count…
/// <summary> /// 随机获取指定范围内N个不重复数字 /// </summary> /// <param name="min">指定范围最小值</param> /// <param name="max">指定范围最大值</param> /// <param name="num">不重复数字的个数</param> /// <retu…
面试题:C#声明一个100大小的数组 随机生成1-100之间不重复的数下面是C#的实现方式,编译测试通过 public static void InsertRandomArray() { int[] intArray = new int[100]; ArrayList newArray = new ArrayList(); Random rnd = new Random(); while (newArray.Count < 100) { int tempNumber = rnd.Next(1,…