已知一个数组
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请问这行吗,有没有更好的算法
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请问这行吗,有没有更好的算法
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");
}