zoukankan      html  css  js  c++  java
  • 出一道题 : 计算 一个 组合

    从  ABCDEFG    7 个 字母 中 每次 取 5 个 字母 作为 组合,  允许 相同 的 字母 重复 出现,  问 有 多少种 组合 ?    可以的话,   列出 这些 组合  。

     

    允许相同 的 字母 重复出现,   比如  AABBC 、ABABC 、CCCCD 、DFGGG   ,    注意,  因为 组合 不区分 元素顺序,   AABBC 和 ABABC  是 同一个 组合  。

     

    这题 出自  《排列组合》  https://www.cnblogs.com/KSongKing/p/13193086.html    。

     

     

    本文 已 发到了 反相吧  《出一道题 : 计算 一个 组合》    https://tieba.baidu.com/p/6935299100   ,  下面 记录 帖 里 的 一些 讨论回复  。

     

     

    11 楼

    incinc :

    还可以相同的字母出现,这就不是题目中的“7 个 字母 中 每次 取 5 个 字母 作为 组合”的问题了,而应该是另一个种组合问题了。

     

    题面出得有问题,因为组合问题的前提已经定义为7个ABCDEFG字母,而这7个字母不可能再成为可以重复的字母出现了。

     

     

    12 楼

    incinc :

    如果“7个字母中可以重复”,则是每一个字母可以出现7次,相对于7*7=49个元素了,

    而从这49个元素进行“每次取5个字母作为组合”,则: C(49,5)=49!/5!*(49-5)!

     

    incinc: 吓住了,共有1,906,884。

     

     

    13 楼

    ylyyjjlh2 :

    我编了个程序,把所有组合都列出来,楼主你看一下,有遗漏或重复吗?

     

     

     

     

     

     

     

     

     

     

     

    15 楼

    回复 11 楼 12 楼     incinc

     

    inc 吧主 的 思路 很有 启发 , 我改了一下, 7 * 5 = 35,

     

    从 35 个 元素 中 取 5 个 作为 组合, 这样得到的 组合 个数 是不是 1 楼 题目 的 答案 ?

     

    还是 有问题, 这样 还是 会 把 一部分 组合 重复 算进去 。

     

     

     

    16 楼

    回复 13 楼    ylyyjjlh2 ,

     

    层主 的 算法 看起来 是 对 的 , 比如 从 AAAAA , AAAA , AAA, AA, A 开始 循环组合,

     

    有 AAABB, 但是 到 BB 的 时候 , 就没有 A, 而是 从 BBCCC 开始,

     

    以 A 循环 的 时候, 用 B 和 之后 的 字母 参与 匹配,

    以 B 循环 的 时候, 用 C 和 之后 的 字母 参与 匹配,

    以 C 循环 的 时候, 用 D 和 之后 的 字母 参与 匹配,

    ……

     

    而 用 字母 匹配 的 过程, 又 使用 上述 的 过程, 如此 递归 。

     

    这个 算法 应该 是 对的 。

     

    这个 算法 的 特色 是 递归, 但 也因为此, 要把 这个 算法 写成 公式 比较 困难 。

     

    另外, 你 递归 次数 太多, 堆栈 没有 溢出 吗 ?

     

     

     

    17 楼

    接 16 楼      ylyyjjlh2 ,

     

    这个 题 可以 用 纯 循环 程序 实现, 也可以写出 对应 的 公式, 这个 循环算法 有一部分 也 参考了 你的 递归算法 。

     

    你的 结果 是 462, 递归次数 估计 在 1 万次 左右 。

     

    受 你的 这个 递归程序 启发 挺多 的 , 哈哈哈 。

     

  • 相关阅读:
    乱码解决方案SecureCRT中文乱码解决方案
    普通用户注销windows server 2003 普通用户(users)远程登录立即自动注销的解决方法
    jquery同步基于jquery的$.ajax async使用
    服务解释WinSer 8 无法访问共享官方解释
    备用nulljs 输出内容到新窗口
    返回解释Java乔晓松Android SD卡路径问题以及如何获取SDCard内存大小
    复制最佳实践MySQL 磁盘复制技术DRBD:优缺点比较、注意事项以及最佳实践
    schema类SpringMVC+Hibernate+Spring整合(二)
    类class2013第十四周上机任务【项目2 抽象Shape类】
    数据库javaJAVA连接oracle数据库
  • 原文地址:https://www.cnblogs.com/KSongKing/p/13633138.html
Copyright © 2011-2022 走看看