已知一个数组
int[] arr=new int[]{1,2,3,4};
其中1的概率为0.1,2的概率为0.2,3的概率为0.3,4的概率为0.4请问程序根据以上概率输出数组的值。我现在用的是区间法,即区间为1-10,1的区间为1,2的区间为2-3,3的区间为4-6,4的区间为7,10然后打乱随机抽取,如果是2或者3则输出2请问这行吗,有没有更好的算法

解决方案 »

  1.   

                Random rand = new Random();
                if (rand.Next(10).ToString()=="0")
                {
                    Console.WriteLine("1");
                }
                else if ("12".IndexOf(rand.Next(10).ToString()) > 0)
                {
                    Console.WriteLine("2");
                }
                else if ("345".IndexOf(rand.Next(10).ToString()) > 0)
                {
                    Console.WriteLine("3");
                }
                else
                {
                    Console.WriteLine("4");
                }
      

  2.   

    如果只有这4个数...最高效的方法是...int[] arr=new int[]{1,2,2,3,3,3,4,4,4,4};//随机取一个...