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