static void Main()
{ //为排序方便我使用了链表
List<int> numbers =
new List<int>(new int[]{ 34, 23, 353, 324, 32, 113, 44, 22 });
numbers.Sort();//排序
System.Random rd = new Random();
for (int i = 0; i < 100; i++ )//循环取一百次,可以看出各个数字出现的频率
{
Console.Write("{0,5}"
,numbers[/*下标*/area(rd.Next(0, (numbers.Count - 1) * 2), numbers.Count)]);
}
Console.WriteLine();
Console.ReadLine();
}
//获得链表的下标,0下标站整个随机数区域的一半,1站剩下的一半,2站1剩下的一半,以此类推。
public static int area(int rd, int length)//rd是随机数length是链表的大小
{
if (rd > length) return 0;
else
for (int i = length / 2, index = 1; i >= 1; i /= 2, index++)
{
if (rd > i) return index;
}
return length - 1;
}
{ //为排序方便我使用了链表
List<int> numbers =
new List<int>(new int[]{ 34, 23, 353, 324, 32, 113, 44, 22 });
numbers.Sort();//排序
System.Random rd = new Random();
for (int i = 0; i < 100; i++ )//循环取一百次,可以看出各个数字出现的频率
{
Console.Write("{0,5}"
,numbers[/*下标*/area(rd.Next(0, (numbers.Count - 1) * 2), numbers.Count)]);
}
Console.WriteLine();
Console.ReadLine();
}
//获得链表的下标,0下标站整个随机数区域的一半,1站剩下的一半,2站1剩下的一半,以此类推。
public static int area(int rd, int length)//rd是随机数length是链表的大小
{
if (rd > length) return 0;
else
for (int i = length / 2, index = 1; i >= 1; i /= 2, index++)
{
if (rd > i) return index;
}
return length - 1;
}