问题定义:从n个数中,等概率的抽取m个数。
真心觉得自己概率论学得不咋第。第一个和第三个函数还是没有看懂。
#include <iostream> #include <algorithm> #include <set> #include <stdlib.h> using namespace std; void genknuth( int m, int n) { srand(5); for( int i = 0; i < n; i++) if( (rand() % (n - i) < m)) { cout << i << "\n"; m--; } } void gensets( int m, int n) { set<int> s; while( s.size() < m) s.insert( rand() % n); set<int>::iterator i; for( i = s.begin(); i != s.end(); i++) cout << *i << endl; } /* 习题9: 当m接近n时,基于集合的算法会产生很多集合中早就存在的整数,因此需要去掉这些整数。写出一个算法,即便在最坏情况下,该算法也只需要m个随机数值? */ void genfloyd( int m, int n) { set<int> s; set<int>::iterator i; for(int j = n - m; j < n; j++) { int t = rand() % ( j + 1); if( s.find(t) == s.end()) s.insert(t); else s.insert(j); } for( i = s.begin(); i != s.end(); i++) cout << *i << "\n"; } void getshuf( int m, int n) { int i, j; int *x = new int[n]; for( i = 0; i < n; i++) x[i] = i; for( i = 0; i < m; i++) { j = (rand() %( n - 1- i)) + i; int temp = x[i]; x[i] = x[j]; x[j] = temp; } sort( x, x+m); for( i = 0; i < m; i++) cout << x[i] << "\n"; } int main(int argc, char* argv[]) { cout << "genknuth: " << endl; genknuth( 5, 10); cout << "gensets:" << endl; gensets( 5, 10); cout << "getshuf:" << endl; getshuf( 5, 10); }
您还没有登录,请您登录后再发表评论
《编程珠玑》读书笔记
编程珠玑是一本提升coding能力不可多得的好书,看书时,可以结合这个笔记,突出重点。
编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码
我觉得不错,和大家分享! 编程珠玑 编程珠玑 编程珠玑
编程珠玑编程珠玑
《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,...
编程珠玑和编程珠玑续两本,上传赚点分,填充填充填充
编程珠玑续、编程珠玑续本、编程珠玑续本、编程珠玑续本
编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...
《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...
编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式
编程珠玑(第二版)答案
编程珠玑+续
这本书是《编程珠玑》高清pdf,如有侵权请告知。
编程珠玑第二版及源代码实现(C/C++) 如果让程序员们列举他们喜欢的书籍,Jon Bentley的《编程珠玑》一定可以归于经典之列。如同精美的珍珠出自饱受沙砾折磨的牡蛎,程序员们的精彩设计也来源于曾经折磨他们的实际...
编程珠玑高清pdf版.pdf
编程珠玑.pdf 面试必备,算法必备,各种算法的精彩解析
编程珠玑2(中文)
相关推荐
《编程珠玑》读书笔记
编程珠玑是一本提升coding能力不可多得的好书,看书时,可以结合这个笔记,突出重点。
编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码
我觉得不错,和大家分享! 编程珠玑 编程珠玑 编程珠玑
编程珠玑编程珠玑
《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,...
编程珠玑和编程珠玑续两本,上传赚点分,填充填充填充
编程珠玑续、编程珠玑续本、编程珠玑续本、编程珠玑续本
编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...
《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...
编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式
编程珠玑(第二版)答案
编程珠玑+续
这本书是《编程珠玑》高清pdf,如有侵权请告知。
编程珠玑第二版及源代码实现(C/C++) 如果让程序员们列举他们喜欢的书籍,Jon Bentley的《编程珠玑》一定可以归于经典之列。如同精美的珍珠出自饱受沙砾折磨的牡蛎,程序员们的精彩设计也来源于曾经折磨他们的实际...
编程珠玑高清pdf版.pdf
编程珠玑.pdf 面试必备,算法必备,各种算法的精彩解析
编程珠玑2(中文)