第一讲 经典的递归问题1

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

//在n个球中,任取m个(不放回),求有多少种取法

#include <stdio.h>

int fun(int n, int m) {

    if(n<m) return 0;

    if(n==m) return 1;

    if(m>0)

    return fun(n-1, m-1) + fun(n-1, m);

}

int main(void)

{

    printf("%d\n", fun(3, 2));

    return 0;

}

/*=======================

2015年12月15日22:28:40

高中的排列组合中有这个公式的

n中取m = n-1中取m-1 + n-1中取m

如何理解呢?

n中取m个,在这些组合中                

(比如abc取两个球,在这些组合中ab ac bc中)

可以分解成两种事件,约定有一个特殊球   

(约定为a球)

1.取特殊球的所有组合  

  即可以把特殊球理解成标签一样,撕掉 特殊球消失 不含有特殊球 就是总球n-1,取m-1个 分别与a球组合

  (b c中取1个构成ab, ac)

2.不取特殊球的所有组合 

  即这些组合不含有特殊球 总球n-1,取m个球 

  (bc中取两个构成bc)

2是1的对立事件

这样分解问题逐层递归就可以解决这个问题了。

   

时间: 2024-10-07 09:47:53

第一讲 经典的递归问题1的相关文章

第二讲 经典的递归问题2

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 //n个元素的全排列 #include "stdio.h" #define N 3 void fun(char ch[], int k){//k: 当前的交换位置(关注点), 与其后的元素交换     int i;     char t;     if(k==N){         for(i=0; i<N; i++) prin

《上古天真论》第一讲文字版

上古天真论篇第一讲主讲:徐文兵  主持:梁  冬播出时间:2008-12-06  23:00—24:00  经文:昔在黄帝,生而神靈,弱而能言,幼而徇齐,长而敦敏,成而等天.乃问于天师曰:余闻上古之人,春秋皆度百岁,而动作不衰:今时之人,年半百而动作皆衰者,时世异耶?人将失之耶?岐伯对曰:上古之人,其知道者,法于阴阳,和于术数, 梁冬:我是梁冬.梁某人.而做在我对面的是我的在求学中医方面的偶像级的老师徐文兵老师,徐老师你好!徐文兵:梁冬好!听众朋友们大家好!梁冬:啊呀,一看就很有这个电台风范,从

第二课:第一讲Linux操作系统及常用命令

第二课:第一讲Linux操作系统及常用命令1.liunx中"X"表示图像显示协议X-window有三种:Gnome,KDE,Xface2.windows->.dll(dynamic link library)liunx->.so (shared object)3.认证:authentication授权:authorization审计:audition(通过日志记录下来实现审计机制)4.登录成功后的"[[email protected] root]"是pr

AWS云计算技术分享系列直播课-第一讲课程邀请函

科技的不断创新与演进时刻在改变我们所处的时间,人们从未停止用科技的力量去探索和实现.越来越多的企业和人们正在通过 AWS 重新构建,构建更好的用户体验,构建更强大的业务平台,构建更安全的系统架构- 今天光环云社群为大家带来AWS云计算技术分享系列直播课,帮助大家由浅入深的了解和使用AWS云服务. 直播课程规划如下: 第一讲 快速开始使用AWS 第二讲 计算.存储和访问权限管理 第三讲 利用 Amazon VPC 服务搭建经典 Web 三层架构 第四讲 弹性与负载均衡 第五讲 使用 Amazon

html学习第一讲(内容html常规控件的的使用)

1 <html> 2 <head> 3 <title> 这是网页的标题</title> 4 </head> 5 6 <body> 7 <h2><font color ="blue"> 这是网页的内容!</font></h2> 8 9 <a href="http://www.cnblogs.com/gongxijun">这是一个连接<

《大话数据结构》 第一讲.数据结构绪论 (读书笔记)

大话数据结构 导读笔记 第一讲: 一.基本概念和术语 (1)数据元素:是组成数据的.有一定意义的基本单位,在计算机中通常作为整体处理.也被称为记录.   比如,在人类中,什么是数据元素呀?当然是人了. (2)数据项:一个数据元素可以由若干个数据项组成.   比如人这样的数据元素,可以有眼.耳.鼻.嘴.手.脚这些数据项,也可以有姓名.年龄.性别.出生地址.联系电话等数据项,具体有哪些数据项,要视你做的系统来决定. 数据项是数据不可分割的最小单位.在数据结构这门课程中,我们把数据项定义为最小单位,是

原创PHP编程第一讲《十五天学会PHP》林伟帆教学视频

我自己录制的原创php编程教学视频第一讲<十五天学会php>,为了帮助大家的学习,引领大家进入互联网动态时期,谢谢大家的观看.原创php编程教学视频<十五天学会php>第一讲EXE高清视频格式下载地址1: http://pan.baidu.com/s/1dDxVFOH 下载地址2: http://pan.baidu.com/s/1gdvj9KZWMV视频格式下载地址:http://pan.baidu.com/s/1sjBe05f我会不定期更新哦,现在是第一讲助人为快乐之本,本人自己

(转)【风宇冲】Unity3D教程宝典之AssetBundles:第一讲

自:http://blog.sina.com.cn/s/blog_471132920101gz8z.html 原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 AssetBundles第一讲:基本使用 AssetBundles是从unity导出你选择的assets,它使用特有的压缩格式并且应用可以实时去读取它.包括模型贴图音频等任何asset类型,甚至整个场景.压缩大小基本能达到zip的效果.AssetBundles从设计时就定位为可以很简单就下载到应用里.如果你想包括自定义的bina

第一讲:Android开发环境的搭建

一.Android简介 Android 是基于Linux内核的软件平台和操作系统.Android构架主要由3部分组成,linux内核层,类库.虚拟机和核心组件库层,应用程序框架层Android应用程序使用JAVA语言进行开发. 二.开发环境的搭建 软件的准备:JAVA  JDK 1.6Eclipse 3.6           (eclipse-java-helios-win32.zip)ADT 0.9.7             (Android Development Tools)SDK T