`
starbhhc
  • 浏览: 657543 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

有n张扑克牌,每张牌的取值范围是:2,3,4,5,6,7,8,9,

    博客分类:
  • java
阅读更多
import java.util.Arrays;


/**
* (c)2010 华润(集团)有限公司版权所有. 保留所有权利.
*
* 文件名称:Ha.java
* 程序说明:
* 创建日期:Jun 18, 2010
* @version 1.0
*/

/**
* @类名:Ha
* @描述:TODO
* @创建日期:Jun 18, 2010 4:43:36 PM
* @修改记录:
*
* @author WangYanFeng
*/

public class Ha {

    /*
     * 有n张扑克牌,每张牌的取值范围是:2,3,4,5,6,7,8,9,
     * 10,J,Q,K,A。在这n张牌中找出顺子(5张及5张以上的连续
     * 的牌),并将这些顺子打印出来。
     */

//    public static void main(String[] args) {
//     // TODO Auto-generated method stub
//     String str = "2,3,4,5,6,7,8,9,10,J,Q,K,A";
//     wantA(str,5);
//     }
//     
//     /**
//     * 
//     * @param str 
//     * @param limit 最少几个连续
//     */
//     public static void wantA(String str,int limit){
//     String[] array = str.split(",");
//     for(int i = 0;i<array.length - limit;i++){
//     for(int j = i+limit;j<array.length - 1;j++){
//     for(int k = i;k<j;k++){
//     System.out.print(array[k]);
//     }
//     System.out.println();
//     }
//     }
//     }
//    }
   
//    public static void main(String[] args) {
//        String str = "2,3,4,5,6,7,8,9,10,J,Q,K,A";
//        wantA(str,5);
//      }
//     
//      public static void wantA(String str,int limit){
//        String[] array = str.split(",");
//        for(int k = 0; k < array.length - limit + 1; k ++){
//            for(int j = limit + k ; j < array.length + 1;j ++){
//                for(int i = k; i < j; i ++){
//                    System.out.print(array[i]);
//                }
//                System.out.println();
//            }
//        }
//      }

    public static void main(String[] args) {
        char[] cs = { 'Z', 'C', 'D', 'E', '1', '2', '3', '4', '8', '5', '6',
                'A', '7', 'B' };
        Arrays.sort(cs);
        System.out.println(Arrays.toString(cs));
        // 连续的字符长度默认设置为5
        int length = 5;
        while (length < cs.length) {
            for (int i = 0; i < cs.length - length; i++) {
                char[] temp = getIncreaseChars(new String(cs).substring(i,
                        i + length).toCharArray(), length);
                if (temp != null)
                    System.out.println(Arrays.toString(temp));
            }
            length++;
        }
    }

    // 专门比较连续的n个字符或数字
    public static char[] getIncreaseChars(char[] cs, int n) {
        if (cs.length != n)
            throw new RuntimeException("char array's length must be " + n);
        char[] csCopy = cs.clone();
        Arrays.sort(csCopy);
        for (int i = 0; i < n - 1; i++) {
            if (csCopy[i + 1] != csCopy[i] + 1)
                return null;
        }
        return csCopy;
    }

}

分享到:
评论

相关推荐

    高中数学人教a版选修2-3 章末综合测评2 word版含答案 .doc

    例如,从一副扑克牌中随机抽取5张,其中梅花的张数就服从超几何分布。 5. **组合计数**:在概率问题中,组合计数(组合)常用来计算可能的组合数,如 C(n, k) 表示从n个不同的元素中选择k个元素的方法数。 6. **...

    第三届蓝桥杯选拔赛题目.docx

    首先,将身份证的前17位分别乘以对应的权重(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2),求和,然后对11取模,最后根据余数查找对应的校验码(1,0,X,9,8,7,6,5,4,3,2)。在编写程序时,应使用字符串或专门的数据结构来...

    2018版高中数学第2章概率学业水平达标检测新人教B版选修2_3

    例如,从一副扑克牌中随机抽取5张,其中梅花的张数就服从超几何分布。 4. **二项分布**:如果一个随机变量X表示在n次独立的伯努利试验中成功的次数,每次试验的成功概率为p,那么X服从参数为n和p的二项分布,其期望...

    福建省诏安县怀恩中学教育集团2015届九年级数学结束考试题

    12. **概率计算**:一副扑克牌共有52张,去掉大小王后有50张,"K"有4张,因此抽到"K"的概率是4/50。 13. **平行四边形的性质**:在四边形ABCD中,若AB=CD,BC=AD,且∠A=110°,则∠C=180°-∠A=70°。 14. **递推...

    八大排序算法C语言

    3. **插入排序**:插入排序类似于玩扑克牌,将每一张新牌插入到已排序部分的正确位置。它在最好情况下(即输入已排序)达到线性时间复杂度O(n),但在最坏情况下也是O(n^2)。 4. **快速排序**:由C.A.R. Hoare提出的...

    河南省中招数学试卷WORD版.doc

    12. **概率问题**:从2, 3, 4, 5这四张扑克牌中任意抽取两张,两张牌上的数字之和为偶数,可以通过列举所有可能的组合来计算概率。 13. **几何体的主视图和左视图**:由给出的视图判断几何体的形状,从而确定组成该...

    九年级数学期中复习题及答案精选.doc

    题目中一张扑克牌被旋转180°,需要找出哪两张牌的位置发生了变化。 8. 英文字母排序规律:这道题考察的是观察和归纳能力,需要找出26个字母的某种排列规律,并将缺失的字母填入合适的位置。 9. 动圆与三角形的...

    2014全国高中数学联赛试题(B卷).doc

    7. 去掉大小王后的扑克牌共有52张,52张中选择5张的组合数为C(52,5),而要没有相同数字或字母的组合数为C(13,5)*C(4,1)^5,所以至少有两张相同的概率为1减去没有相同数字或字母的概率。 8. 要求函数f(x) = ∫[a, x]...

    2013高考数学 考前知识要点复习十一 概率

    2. **等可能事件的概率**:如果一次试验有n种等可能的结果,并且每种结果发生的可能性相同,那么每一种基本事件的概率为1/n。如果事件A包含了m个等可能结果,那么事件A的概率P(A) = m/n。 3. **互斥事件**:两个...

    统计概率知识点归纳总结大全.doc

    比如,从一副洗好的扑克牌中抽取一张,抽到红桃的概率与其他三种花色一样。计算等可能性事件的概率,可以使用排列组合的方法。 3. **互斥事件和相互独立事件**: - **互斥事件**:事件A和事件B不能同时发生,例如...

    信息论习题集

    ### 信息论习题集知识点解析 ... - **计算**: 抽取扑克牌的信源熵反映了抽到每张牌的不确定性。 以上知识点涵盖了信息论的基础概念、信源、信道以及编码等关键方面,有助于深入理解信息论的基本原理和技术应用。

    统计概率知识点归纳总结大全(1).doc

    例如,从一副扑克牌中抽取一张红桃的概率是13/52,因为有13张红桃,总共52张牌。 互斥事件是指两个事件不可能同时发生,它们的概率可以相加。例如,抛掷一枚硬币,得到正面和反面是互斥的,所以正面出现的概率加上...

    2018年高中数学课下能力提升十一超几何分布苏教版选修2_3

    4. 对于解答题中的第6题,至少有3张A的概率,可以通过计算没有A的概率然后用1减去这个概率来得到,即 \( P(X \geq 3) = 1 - P(X = 0) - P(X = 1) - P(X = 2) \)。 5. 第7题中,第一问要求求出一等品件数 \( X \) 的...

Global site tag (gtag.js) - Google Analytics