问题如题目.
本人想到一个方法,但不能保证每个数字的公平性.尽可能使每一个数字都是公平的(随机范围一样)

解决方案 »

  1.   

    static int[] Rand(int count, int ceilingOfSum)
    {
       int[] result = new int[count];
       int ceiling = ceilingOfSum * 2 / count;
       Random random = new Random();   int sum = 0;
       for(int i=0; i<result.Length; i++)
       {
          result[i] = random.Next(ceiling);
          sum += result[i];
       }   while(sum > ceilingOfSum)
       {
          int idx = random.Next( result.Length );
          if( result[idx] > 0 )
          {
             result[idx]--;
             sum--;
          }
       }   return result;
    }
      

  2.   

    ^_^  等等我仔细研究下   先感激一下gomoku
      

  3.   

    用上面的代码
    错误 程序“D:\v2005练习\10数和为100\10数和为100\obj\Debug\10数和为100.exe”不包含适合于入口点的静态“Main”方法
    3 楼的大哥  帮解释下  不胜感激
      

  4.   

    using System;
    namespace xxx       
    {
            ...放3楼的代码        static void Main()
            {
                int[] num=Rand(10,100);   
                
                //num[0]~num[9]的输出语句            
            }
    }