日期:2014-05-18 浏览次数:21149 次
        private int GetValue()
        {
            Random r = new Random();
            int value = r.Next( 1, 10000 );
            if ( value >= 1 && value <= 1333 )
                return 1;    // 13.33的概率是 1
            else if ( value >= 1334 && value <= 2666 )
                return 2;    // 13.33的概率是 2
            else if ( value >= 2667 && value <= 3999 )
                return 3;    // 13.33的概率是 3
            else if ( value >= 4000 && value <= 5332 )
                return 6;    // 13.33的概率是 6
            else if ( value >= 5333 && value <= 6665 )
                return 7;    // 13.33的概率是 7
            else if ( value >= 6666 && value <= 7998 )
                return 9;    // 13.33的概率是 9
            else if ( value >= 7999 && value <= 8665 )
                return 4;    // 6.6  的概率是 4
            else if ( value >= 8666 && value <= 9332 )
                return 5;    // 6.6  的概率是 5
            else
                return 8;    // 6.67 的概率是 8
        }
------解决方案--------------------
public static void test2()
        {
            /*
            在1~9之间产生30个随机数. 
            1,2,3,6,7,9的个数分别是4 
            4,5,8的个数分别是2  
             */
            //存放最后的结果
            int[] number = new int[30];
            //每个数字出现次数的限制
            int[] limit = new int[10] { 0, 4, 4, 4, 2, 2, 4, 4, 2, 4 };
            //记录每个数字已出现的次数
            int[] count = new int[10];
            for (int i = 0; i < count.Length; i++)
            {
                count[i] = 0;
            }
            Random r = new Random();
            int index = 0;
            while(index<30)
            {
                int n = r.Next(1, 10);
                
                if (count[n] < limit[n])
                {
                    count[n]++;
                    number[index++] = n;
                }
            }
            for (int i = 0; i < 30; i++)
            {
                System.Console.Write(number[i] + " ");
            }
        }
------解决方案--------------------
up
------解决方案--------------------
二楼很不错!!!
------解决方案--------------------
2楼
------解决方案--------------------
4楼的方法是准确的
完全能达到楼主的要求
------解决方案--------------------
2楼的方法在有限的数据下够帅
------解决方案--------------------
顶2楼
------解决方案--------------------
不错
------解决方案--------------------
up
------解决方案--------------------
2楼帅
------解决方案--------------------
这方法好,嘿嘿