问题定义:从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); }
您还没有登录,请您登录后再发表评论
### 《编程珠玑》读书笔记关键知识点梳理 #### 一、引言 - **书籍定位**:《编程珠玑》是一本计算机科学领域的经典著作,由计算机科学大师Jon Bentley撰写,书中探讨了计算机科学的核心问题——如何正确选择和高效...
"编程珠玑总结笔记" 本资源笔记总结了编程珠玑中的一些重要知识点,包括优化程序、埃氏筛法和位图法等。 1. 打印出小于 10000 的素数 优化程序是编程珠玑中的一大主题,如何优化程序来提高效率是一个非常重要的...
书中涵盖了一系列实用的编程问题和解决方案,这些“珠玑”般的编程智慧,无论对于初学者还是经验丰富的开发者,都有着极高的参考价值。 编程珠玑的核心概念之一是数据结构与算法的选择和设计。书中的例子多以实际...
《编程珠玑 第2版(修订版)》是一本深受程序员喜爱的经典著作,它不仅提供了丰富的编程实践经验,还深入探讨了程序设计的艺术与智慧。这本书的修订版更是在原版基础上进行了更新和完善,旨在帮助程序员提升编程技能,...
《编程珠玑》是计算机科学领域的一本经典之作,由Jon Bentley 编著,它以其深入浅出的方式探讨了程序设计的问题和解决方案,尤其在数据结构、算法优化以及问题解决策略方面有着独到的见解。这本书的源代码是作者为了...
《编程珠玑》这本书主要关注的是如何解决实际问题,而不是单纯介绍编程语言或算法理论。书中通过大量的例子和案例研究,向读者展示了如何高效地编写代码以及如何优化算法性能。《编程珠玑》分为两个部分:第一部分...
《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,...
在《编程珠玑》中,作者Jon Bentley将编程问题比喻为“珍珠”,强调解决这些问题的过程如同寻找珍贵的珍珠,需要深思熟虑和精心打磨。书中的主要知识点包括: 1. **问题解决策略**:如何分析问题,确定合适的算法,...
《编程珠玑》是计算机科学领域的一本经典之作,由Jon Bentley著,主要探讨了程序设计问题的解决方法和算法优化。这本书的核心理念是通过实际的编程问题来传授如何高效地设计和分析算法,旨在提升程序员的问题解决...
算法经典书籍编程珠玑第2版,这本书除了讲算法,更是讲述解决问题的思想。
4. **编程语言选择**:虽然标签提到“C/C++”,但《编程珠玑》并不局限于特定语言,而是通过通用的编程概念来讲述问题,这些概念可以应用于任何编程语言。书中的例子多数用C语言编写,但其思想对于理解和改进任何...
Jon Bentley编著的《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容...
编程珠玑续、编程珠玑续本、编程珠玑续本、编程珠玑续本
10.9 次要问题目录(边栏) 101 第11章 图形化输出 103 11.1 实例研究 103 11.2 显示结果取样 105 11.3 原理 107 11.4 习题 108 11.5 深入阅读 110 11.6 拿破仑远征莫斯科(边栏) 110 第12章 对调查的研究 113 12.1...
《编程珠玑》不仅关注理论和方法,更强调实际问题的解决,通过一系列精选的程序设计问题,向读者展示了如何在程序设计中应用理论知识,并在面对具体问题时采取合理的解决方案。 书中提到的C#(读作C Sharp)是一种...
编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...
《编程珠玑》不仅能够帮助初学者打好基础,提升算法技能,也能够帮助有经验的程序员拓宽视野,寻找解决问题的新思路。 在学习的过程中,读者可以通过书中的实例和练习加深理解。这些例子往往取自实际的编程场景,...
《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...
编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式
相关推荐
### 《编程珠玑》读书笔记关键知识点梳理 #### 一、引言 - **书籍定位**:《编程珠玑》是一本计算机科学领域的经典著作,由计算机科学大师Jon Bentley撰写,书中探讨了计算机科学的核心问题——如何正确选择和高效...
"编程珠玑总结笔记" 本资源笔记总结了编程珠玑中的一些重要知识点,包括优化程序、埃氏筛法和位图法等。 1. 打印出小于 10000 的素数 优化程序是编程珠玑中的一大主题,如何优化程序来提高效率是一个非常重要的...
书中涵盖了一系列实用的编程问题和解决方案,这些“珠玑”般的编程智慧,无论对于初学者还是经验丰富的开发者,都有着极高的参考价值。 编程珠玑的核心概念之一是数据结构与算法的选择和设计。书中的例子多以实际...
《编程珠玑 第2版(修订版)》是一本深受程序员喜爱的经典著作,它不仅提供了丰富的编程实践经验,还深入探讨了程序设计的艺术与智慧。这本书的修订版更是在原版基础上进行了更新和完善,旨在帮助程序员提升编程技能,...
《编程珠玑》是计算机科学领域的一本经典之作,由Jon Bentley 编著,它以其深入浅出的方式探讨了程序设计的问题和解决方案,尤其在数据结构、算法优化以及问题解决策略方面有着独到的见解。这本书的源代码是作者为了...
《编程珠玑》这本书主要关注的是如何解决实际问题,而不是单纯介绍编程语言或算法理论。书中通过大量的例子和案例研究,向读者展示了如何高效地编写代码以及如何优化算法性能。《编程珠玑》分为两个部分:第一部分...
《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,...
在《编程珠玑》中,作者Jon Bentley将编程问题比喻为“珍珠”,强调解决这些问题的过程如同寻找珍贵的珍珠,需要深思熟虑和精心打磨。书中的主要知识点包括: 1. **问题解决策略**:如何分析问题,确定合适的算法,...
《编程珠玑》是计算机科学领域的一本经典之作,由Jon Bentley著,主要探讨了程序设计问题的解决方法和算法优化。这本书的核心理念是通过实际的编程问题来传授如何高效地设计和分析算法,旨在提升程序员的问题解决...
算法经典书籍编程珠玑第2版,这本书除了讲算法,更是讲述解决问题的思想。
4. **编程语言选择**:虽然标签提到“C/C++”,但《编程珠玑》并不局限于特定语言,而是通过通用的编程概念来讲述问题,这些概念可以应用于任何编程语言。书中的例子多数用C语言编写,但其思想对于理解和改进任何...
Jon Bentley编著的《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容...
编程珠玑续、编程珠玑续本、编程珠玑续本、编程珠玑续本
10.9 次要问题目录(边栏) 101 第11章 图形化输出 103 11.1 实例研究 103 11.2 显示结果取样 105 11.3 原理 107 11.4 习题 108 11.5 深入阅读 110 11.6 拿破仑远征莫斯科(边栏) 110 第12章 对调查的研究 113 12.1...
《编程珠玑》不仅关注理论和方法,更强调实际问题的解决,通过一系列精选的程序设计问题,向读者展示了如何在程序设计中应用理论知识,并在面对具体问题时采取合理的解决方案。 书中提到的C#(读作C Sharp)是一种...
编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...
《编程珠玑》不仅能够帮助初学者打好基础,提升算法技能,也能够帮助有经验的程序员拓宽视野,寻找解决问题的新思路。 在学习的过程中,读者可以通过书中的实例和练习加深理解。这些例子往往取自实际的编程场景,...
《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...
编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式