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

、组合问题(从M个不同字符中任取N个字符的所有组合)

阅读更多
void find(char *source, char *result, int n) {
     if(n==1) {
         while(*source)
            printf(”%s%c\n”, result, *source++);
     } else {
         int i, j;
         for(i=0; source[i] != 0; i++);
         for(j=0; result[j] != 0; j++);
         for(; i>=n; i-) {
              result[j] = *source++;
              result[j+1] = ‘\0′;
              find(source, result, n-1);
         }
     }
}
 
int main(int argc, char* argv[]) {
     int const n = 3;
     char *source = “ABCDE”, result[n+1] = {0};
     if(n>0 && strlen(source)>0 && n<=strlen(source))
         find(source, result, 3);
}
分享到:
评论

相关推荐

    从n个数组中取出所有排列组合(Java实现)

    排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列的所有可能的方式;组合则是指不考虑元素的顺序,仅考虑元素的选取。在这个问题中,我们不仅要考虑元素的选取,还要考虑它们的顺序,因此属于...

    基于位图的n选m的组合算法实现(C#)

    在IT领域,组合算法是一种常见的数据处理方法,用于从给定的集合中找出所有可能的m个元素的子集,当需要对大量数据进行筛选或分析时尤其有用。本项目是基于C#语言实现的n选m组合算法,能够处理各种类型的数据,包括...

    Go语言实现的排列组合问题实例(n个数中取m个)

    本文将详细介绍如何使用Go语言来解决一个具体的排列组合问题:从n个数中选取m个数的所有可能组合,并通过一个实际的示例来展示其实现过程。 #### 二、组合问题解析 组合是指从n个不同元素中取出m(m≤n)个元素并组成...

    字符串的组合算法问题的C语言实现攻略

    全组合的概念是指从字符串中取出0到n个字符的所有可能性,包括空集和本身。通过位运算的方法,我们可以轻松地获取所有这些组合,因为每种可能的子集都可以与一个0到2^n - 1之间的整数对应。 总结来说,字符串组合...

    易语言源码排列组合模块(M选N)源码.rar

    递归算法通常基于基础情况(即m=1或n=m的情况)和递推关系(从n个元素中取m个与先从n-1个元素中取m-1个然后加入剩下的一个元素等价)来解决问题。动态规划则是在空间复杂度允许的情况下,避免重复计算,通过存储中间...

    python实现n个数中选出m个数的方法

    标题中的“python实现n个数中选出m个数的方法”是指在Python编程环境中,如何从一个包含n个元素的集合中选择出m个元素的所有可能组合。这个问题在计算机科学和算法设计中通常被称为组合问题,它涉及到组合数学和回溯...

    字符串面试题整理

    5. **打靶问题**:这是一个典型的组合问题,可以用递归计算所有可能的组合。每个射击有11种可能,递归函数可以表示为`f(n, total)`,表示n枪剩余total环的组合数。 6. **最长回文字串**:寻找字符串中最长的回文...

    C语言打印字符图形

    3. **多字符组合图形**:通过混合使用不同字符,可以创建更加复杂的图案,如使用`*`和空格创建网格。 #### 四、实践建议 - **练习不同形状**:尝试使用C语言创建不同的图形,如正方形、菱形、心形等。 - **理解...

    C语言数据结构编程题

    在这个问题中,我们需要从M个不同字符中任取N个字符的所有组合。我们可以使用递归的方法来实现这个问题。函数find将源字符串source和结果字符串result作为参数,然后生成所有组合。 知识点:递归、组合问题、字符串...

    C++回溯算法实验报告

    为了解决这个问题,我们并不需要一次性找出所有可能的组合,而是采取贪心策略,依次删除每个数字,每次删除时选择当前未删除数字中最小的一个,这样可以保证每次删除后得到的数都是最小的。这是一个局部最优解能够...

    字符串的全排列和组合算法.doc

    首先,全排列是指从一个给定序列中生成所有可能的不同顺序的排列。在字符串上下文中,这通常涉及将字符串中的每个字符视为一个元素,并列出所有可能的字符顺序。例如,字符串"abc"的全排列包括"abc", "acb", "bac", ...

    组合数学第四版第一章习题答案

    1.47题涉及资源分配,当有5台机器和m个学生,且前两台机器使用人数相同,我们需要从m个学生中选择2n个使用这两台机器,然后从这2n个中分配,最后计算剩余学生的分配方案。 1.50题(a)是关于0和1组成的字符串问题,...

    oracle常用字符函数

    - LTRIM从字符串chr的左侧删除指定的n字符,直到遇到不在n中的字符为止。 10. NLS_INITCAP(chr, [‘nls_param’]) 函数: - 这个函数根据指定的nls_param(如拼音、部首等)将字符串的首字母转换为大写。 11. ...

    正则表达式(Regular Expression,简称Regex)是一种用于匹配字符串中字符组合的模式 它广泛应用于文本处理、数

    正则表达式(Regular Expression,简称Regex)是一种用于匹配字符串中字符组合的模式。它广泛应用于文本处理、数据验证、搜索与替换等领域。 正则表达式的基本组成: 普通字符:直接匹配的字符,如 a, b, 1, # 等。...

    nodejs+字符串的模式匹配+正则表达式+判断获取字符串的某些需求

    2. **重复字符**:使用 `{n,m}` 来限定匹配的次数,例如 `{1,20}` 表示匹配1到20次。 3. **选择-组合-引用**:可以使用圆括号 `( )` 来组合多个模式,通过 `|` 进行选择匹配。同时,可以通过 `\1`, `\2` 等来引用...

    C语言数据结构编程题.doc

    在这个程序中,我们使用递归函数`find`来解决组合问题,即从M个不同字符中任取N个字符的所有组合。递归函数的实现是通过不断地将字符组合,并将结果打印出来。 知识点: * 递归函数的使用 * 字符串的处理 * 组合...

    用ksh打印所有组合

    1. **组合的概念**:在数学中,组合是指从n个不同元素中,不考虑顺序地取出k(k≤n)个元素的方法数目。 2. **Korn Shell (KSH)**:一种流行的Unix shell,它结合了Bourne shell和C shell的优点,并添加了许多增强功能...

    易语言取文本组合源码

    易语言取n-m文本组合源码.内嵌汇编增加速度. 采用的是位计数方式.

    java获取N项的排列结果和组合结果

    使用java找出N项中的M项的排列结果、组合结果。从列表List或者Array中找出n项得到的排列、组合结果——排列A(n,m),组合C(n,m)

Global site tag (gtag.js) - Google Analytics