| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:随机生成 求指导
只看楼主 加入收藏
Evelia
Rank: 1
等 级:新手上路
帖 子:21
专家分:4
注 册:2012-12-21
结帖率:50%
收藏
已结贴  问题点数:12 回复次数:2 
随机生成 求指导
随机生成100个字母ABCD
其中50个A  30个B 10个C  10个D
有没有好点的方法
搜索更多相关主题的帖子: 指导 字母 
2013-03-11 16:46
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:12 
1 先随机生成呗,一边生成,一边检测,比如D已经10个了,就改为随机生成ABC,以此类推就可以了。
2 先全部生成,完了以后再检测,多了的就去掉,然后继续,直到满足要求。
3 先按要求弄50个A,30个B,10个C,10个D出来,然后随机抽取排序。(这个方法好像有点走歪了的感觉)
2013-03-11 18:00
转身之爱
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-27
收藏
得分:0 
        static void Main(string[] args)
        {
            const string cntA = "A";
            const string cntB = "B";
            const string cntC = "C";
            const string cntD = "D";
            int intA = 50;
            int intB = 30;
            int intC = 10;
            int intD = 10;

            string[] strArr = new string[4] { cntA, cntB, cntC, cntD };
            int[] intCount = new int[4] { 0, 0, 0, 0 };
            Random ran = new Random();

            while (intCount[0] < intA || intCount[1] < intB || intCount[2] < intC || intCount[3] < intD)
            {
                int intIndex = ran.Next(0, 4);
                string strCur = strArr[intIndex];
                switch (strCur)
                {
                    case cntA:
                        if (intCount[0] < intA)
                        {
                            intCount[0]++;
                            Console.Write(strCur);
                        }
                        break;
                    case cntB:
                        if (intCount[1] < intB)
                        {
                            intCount[1]++;
                            Console.Write(strCur);
                        }
                        break;
                    case cntC:
                        if (intCount[2] < intC)
                        {
                            intCount[2]++;
                            Console.Write(strCur);
                        }
                        break;
                    case cntD:
                        if (intCount[3] < intD)
                        {
                            intCount[3]++;
                            Console.Write(strCur);
                        }
                        break;
                    default:
                        break;
                }
            }

            Console.WriteLine("随机生成完成!");
            Console.WriteLine("A的总数:{0}", intCount[0]);
            Console.WriteLine("B的总数:{0}", intCount[1]);
            Console.WriteLine("C的总数:{0}", intCount[2]);
            Console.WriteLine("D的总数:{0}", intCount[3]);
        }
2013-03-27 22:47
快速回复:随机生成 求指导
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059989 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved