`
talin2010
  • 浏览: 513054 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

一些关于排列组合的题目

阅读更多

---------------------------------------------------------------------------

求从 n 个元素里取 m 个的所有组合。

#include <stdio.h>
#include <string.h>

#define MAX 100

void print(const int * array, int m)
{
int i;
for (i = 0; i < m; ++i)
{
printf("%d", array[i]);
}
printf("\n");
}

int combin(int n, int m)
{
int first = 0;
int count = 0;
int array[MAX];
memset(array, 0, sizeof(array));
while (first >= 0)
{
int i;
if (array[first] >= (n - m + first + 1))
{
--first;
continue;
}
++array[first];
for (i = first + 1; i < m; ++i)
{
array[i] = array[i - 1] + 1;
}
print(array, m);
++count;
first = i - 1;
}

return count;
}

int main(int argc, char * argv[])
{
printf("total: %d\n", combin(7, 3));

return 0;
}

参考:
1. 《组合数学》第三版,定理 4.4.1
2. http://blog.csdn.net/jiumingmao11982/archive/2006/11/12/1380301.aspx

---------------------------------------------------------------------------
分享到:
评论

相关推荐

    排列组合典型题目

    很多企业性格测试 包含排列组合和逻辑推理题,提前预备有助于测试中较好的发挥

    排列组合题目精选附答案.doc

    以上只是部分题目所涉及的知识点,排列组合问题通常需要灵活运用排列数、组合数、捆绑法、插空法、排除法等多种方法来求解。对于更复杂的题目,可能还需要结合容斥原理、 Burnside 定理等高级工具。在实际解题过程中...

    组合排列组合排列组合排列组合排列

    在编程领域,组合排列是数据结构与算法中的一个重要概念,主要涉及到如何从一个给定的元素集合中选择特定数量的元素,而不考虑选取的顺序(组合)或考虑选取的顺序(排列)。Java作为广泛使用的面向对象编程语言,...

    排列组合练习数据

    在本压缩包“排列组合练习数据”中,包含了相关的测试题目,旨在帮助学习者深入理解和掌握这一主题。排列关注的是元素的顺序,而组合则不考虑顺序。在解决实际问题时,排列组合经常被应用于概率论、统计学、计算机...

    排列组合题目精选(附答案).doc

    这些题目涵盖了排列组合的基本概念和方法,包括排列、组合、捆绑法、插空...以上就是这些排列组合题目涉及的主要知识点。通过解这些问题,我们可以深入理解排列组合的基本概念和技巧,并学会如何在实际问题中灵活运用。

    排列组合

    在IT行业中,排列组合是算法和数据结构领域中的一个重要概念,尤其在计算机科学的很多应用场景中,如搜索、优化和统计分析等。Objective-C是一种强大的编程语言,常用于开发iOS和Mac OS X平台的应用程序。本节将深入...

    排列组合的算法作业 java

    【排列组合的算法作业 Java】 在编程领域,排列和组合是经典的算法问题,它们属于组合数学的一部分,常常出现在数据结构与算法课程的作业中。排列指的是从给定的元素集合中选择并按特定顺序排列所有可能的组合,而...

    信息学奥赛辅导-排列组合基础知识

    中小学生信息学奥赛知识点:排列和组合的知识介绍,帮助孩子提前掌握排列组合的原理。

    C经典算法之排列组合

    ### C经典算法之排列组合 #### 知识点解析 **排列组合**是计算机科学与数学中的一个重要概念,广泛应用于密码学、数据处理、优化问题等领域。本篇内容主要介绍了如何利用C语言实现一个基本的排列算法。 #### 排列...

    排列组合公式排列组合计算公式.doc

    排列组合是数学中的一种基本概念,它是指从一个集合中选择一些元素,按照一定的顺序或无顺序排列或组合。排列组合公式是计算排列或组合的个数的数学公式。 排列(Permutation)是指从 N 个元素中取 R 个元素,按照...

    排列组合之组合的PPT

    本资源主要讨论排列组合的组合问题,通过模型和实践题目,展示了排列组合的各种应用场景。 1. 模型1:组合的典型问题 模型1讨论的是把n个有标志的球,取r个放到r个无区别的盒子里的问题。这个问题可以用公式来表示...

    排列组合21种模型解析

    排列组合是数学中的一个重要概念,尤其在解决实际问题和应对高考等考试中具有较高的出现频率。排列组合问题涉及元素的排列、组合以及各种特定条件下的计数方法。以下是21种模型的详细解释: 1. **相邻问题** - 捆绑...

    求排列组合的算法

    排列组合是离散数学中的重要概念,主要研究的是在没有重复元素的情况下,如何从给定数量的元素中选择一定数量的元素进行排列或组合。在编程中,实现排列组合算法可以帮助我们解决各种问题,比如数据排序、组合优化、...

    排列和组合的题目 带详细解释.rar

    “二项式定理”是排列组合的一个重要应用,它描述了幂次展开的形式。二项式定理表明,对于任意非负整数n和实数a、b,(a+b)^n可以展开为n+1项的和,每一项都是a和b的特定次数的乘积,即(a+b)^n = Σ(nCk * a^(n-k) * ...

    排列组合之题目-编程、分水果、竞赛

    排列组合是组合数学中的核心概念,它涉及到如何在有限的元素集合中,按照特定规则选取元素的方法数。在编程中,排列组合问题常用于解决各种实际问题,如任务分配、资源调度、比赛分组等。这里我们将深入探讨编程、分...

    管理类考研数学之排列组合与概率.pdf

    本文件是关于管理类研究生入学考试(简称考研)数学复习资料的一部分,专注于排列组合与概率论的知识点。在管理类考研数学的范畴中,排列组合与概率部分是考生必须掌握的基础数学知识,它涉及到如何对事件和可能的...

    排列组合之排列组合Ⅱ-阅读、讨论、阅读、讨论

    排列组合是离散数学中的一个基础概念,广泛应用于概率论、统计学以及计算机科学的算法设计等领域。在本节“排列组合之排列组合Ⅱ——阅读、讨论、阅读、讨论”中,我们将深入探讨排列与组合的区别,以及它们在解决...

    高中数学讲义微专题80 排列组合中的常见模型.pdf

    高中数学讲义微专题80主要涵盖了排列组合的常见模型和解决方法,排列...在实际教学中,教师可以利用这些知识点设计更多贴近生活、富有挑战性的题目,让学生在解决这些实际问题的同时,加深对排列组合知识的理解和应用。

    高中数学讲义微专题81 排列组合——选择合适的数学模型.pdf

    高中数学讲义微专题81所涉及的主题为排列组合,核心概念是通过寻找合适的问题模型和等价转化来巧妙解决排列组合问题。排列组合是高中数学的一个重要分支,涉及到计数原理、组合数学以及概率论的基础知识。 例题分析...

Global site tag (gtag.js) - Google Analytics