日期:2014-05-18 浏览次数:21449 次
ArrayList arraylisttemp1 = new ArrayList();
ArrayList arraylisttemp2 = new ArrayList();
Random random = new Random();
int[] nums3 = new int[3];
int[] nums2 = new int[37];
int[] nums1 = new int[3];
int[] nums4 = new int[40];
for (int i = 1; i <= 100; i++)
{
for (int j = 1; j <= 100; j++)
{
if (i != j)
{
for (int k = 1; k <= 100; k++)
{
if (i != k && j != k)
{
nums1[0] = i;
nums1[1] = j;
nums1[2] = k;
arraylisttemp1.Add(nums1);
}
}
}
}
}
for (int j = 0; j < 300000; j++)//需要300000组数组
{
for (int i = 0; i < 37; i++)//随机生成37个元素的数组
{
int a = random.Next(1, 101);
nums2[i] = a;
}
arraylisttemp2.AddRange(nums2);
for (int h = 0; h < arraylisttemp1.Count; h++)//在所有三个数不同的(arraylisttemp1)里面取一个随机数组
{
int b = random.Next(1, arraylisttemp1.Count);
//if (!arraylisttemp1.Contains(arraylisttemp1[b]))
// {
ArrayList temp = new ArrayList(arraylisttemp1.Count - 1);//存储中间量
for (int i = 0; i < arraylisttemp1.Count-1; i++)//在arraylisttemp1中删除已经取出的 那个三元素数组
{
if (i < b)
{
temp.Add(arraylisttemp1[i]);
}
else if (i >= b)
{
nums3 = ((int[])arraylisttemp1[b]);
temp.Add(arraylisttemp1[i + 1]);
arraylisttemp1 = temp;
}
}
//}
}
arraylisttemp2.AddRange(nums3);
nums4 =(int []) arraylisttemp2 .ToArray (typeof(int));
arraylisttemp2.Clear();
foreach (int a in nums4)
{
Console.Write(a+",");
}
Console.WriteLine();
Console.WriteLine();
}
------解决方案--------------------
List<Int32[]> array = new List<int[]>(300000);
var temp=Enumerable.Range(1, 100);
for (int i = 0; i < 300000; i++)
{
array.Add(temp.OrderBy(item=>Guid.N