| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 167 人关注过本帖
标题:请教高手一个关于数字组的编程
收藏  订阅  推荐  打印
cinderhuan
Rank: 1
等级:新手上路
帖子:5
积分:150
注册:2008-10-5
请教高手一个关于数字组的编程

1-10 这十个数字  要求分成若干组,每组七个数字。每组内部的数字不能重复,组与组之间的七个数字不能完全相同。已经有朋友帮我算出这大概可以分成120多组,现在需要有编程高手能不能帮我罗列出所有的数字组。  或者帮我设计一个程序也行!~
2008-10-5 12:55
cqusnail
Rank: 2
等级:注册会员
帖子:36
积分:534
威望:1
注册:2008-9-5

偶是菜鸟,偶不是高手,所以偶的结果有等验证
变量命名不规范,请见谅

import java.util.Arrays;

public class Seven {

    /**
     * @author cqusnail
     */
    public static void main(String[] args) {
        
        Seven s = new Seven();    

        
        int t = 0;
        int[] r;
        int[][] rr = new int[200][7];
        
        again:
        //理论上只能生成120组,当然为了检验,你也可以把 t 的上限设大一些
        while(t<120)
        {        

            r = s.s_Sort();
            //比较新产生的数组与已经存在的数组中的元素是否相等
            for(int e =0;e<t+1;e++)
            {
                
                //比较新产生的数组与当前的数组是否相等
                
                    if(Arrays.equals(r, rr[e]))
                        continue again;
                    
             }
            //如果产生的数组与已经存在的数组不相等,则放入rr数组,并打印
            
            {
                rr[t]=r;
                
                System.out.print(" 第 "+t+" 组    ");
                for(int p=0;p<7;p++)
                {
                    System.out.print(" "+r[p]+"  ");
        
                }
            }
            
             System.out.println();
             t++;
                    
        }
    }
    //产生一组七个数字,每组内部的数字不能重复,并且排好序
    private int[] s_Sort()
    {
        int[] str = new int[7];
        int[] a = new int[10];
        int temp = 10;
        int temp2;
        
        for(int j=0;j<10;j++)
        {
            a[j]=j+1;
        }                
          
        for(int i=0;i<7;i++)
            
        {
            
            temp2 = (int)(Math.random()*temp);
            str[i]= a[temp2];
            for(int k=temp2;k<temp-1;k++)
            {
                a[k]=a[k+1];
            }
            temp--;
            
        }
        
        Arrays.sort(str);        
        
        return str;
    }

}
2008-10-5 17:54
伤狼
Rank: 2
等级:注册会员
帖子:58
积分:668
威望:2
注册:2008-10-10

恩恩 可以实现..
2008-10-10 14:29
共有 166 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.543087 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved