日期:2014-05-18 浏览次数:21455 次
            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