博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程珠玑: 12章 取样问题 12.1程序的输入包含两个整数m和n,其中m<n。输出是0~n-1范围内m个随机整数的有序列表,不允许重复。 优化解法-------解题总结
阅读量:3658 次
发布时间:2019-05-21

本文共 961 字,大约阅读时间需要 3 分钟。

#include 
#include
#include
#include
using namespace std;/*问题:程序的输入包含两个整数m和n,其中m
max) { int temp = min; min = max; max = temp; } return ( rand() % (max - min + 1) + min );}//生成0~n-1中m个随机选择的不重复的数组成的有序列表vector
getRandomVector(int m , int n){ vector
results; for(int i = 0 ; i < n ; i++) { //从剩余n-i个数中选择m个数的概率为 m/(n-i) int randValue = rand(); if( randValue % (n-i) < m ) { //选中当前数,就使得剩余带选择个数减少 m--; results.push_back(i); } } return results;}void print(vector
& results){ if(results.empty()) { cout << "no result" << endl; return; } int size = results.size(); for(int i = 0 ; i < size; i++) { cout << results.at(i) << " "; } cout << endl;}void process(){ int m , n; vector
results; while(cin >> m >> n) { results = getRandomVector(m , n); print(results); }}int main(int argc , char* argv[]){ process(); getchar(); return 0;}

转载地址:http://yhofn.baihongyu.com/

你可能感兴趣的文章
计算机组成原理学习笔记——控制器
查看>>
计算机组成原理学习笔记——指令流水线
查看>>
计算机组成原理学习笔记——总线概述
查看>>
计算机组成原理学习笔记——总线的仲裁方式
查看>>
计算机组成原理学习笔记——总线的定时和标准
查看>>
计算机组成原理学习笔记——I/O系统基本概念
查看>>
计算机组成原理学习笔记——计算机外围设备
查看>>
计算机组成原理学习笔记——I/O 接口
查看>>
计算机组成原理学习笔记——I/O方式
查看>>
操作系统学习笔记——计算机操作系统基本概念
查看>>
操作系统学习笔记——操作系统的分类和发展
查看>>
操作系统学习笔记——操作系统如何正确运行
查看>>
计算机操作系统学习笔记——操作系统中的进程和线程
查看>>
计算机操作系统学习笔记——如何为进程分配处理机
查看>>
计算机操作系统学习笔记——处理机调度算法
查看>>
计算机操作系统学习笔记——进程管理之协作进程的同步、互斥
查看>>
计算机操作系统——经典同步问题
查看>>
计算机操作系统学习笔记——关于进程死锁相关知识点
查看>>
计算机操作系统学习笔记——内存管理之基本原理和要求
查看>>
计算机操作系统学习笔记——虚拟内存及其管理
查看>>