博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如题:有两个思路,

思路一,循环,当数组里面已经存在就随机到下一个,直到没有重复为止,其中可以用一个哈希表来查看是否重复;

思路二:把集合一百个数存起来,然后随机一个数,把它加到数组,并从集合中把它删掉;

思路一:

 

 

            Random rd = new Random(100);
            int[] rdNumber = new int[100];

            Hashtable ht = new Hashtable();
            for (var i = 0; i < 100; i++)
            {
                int next = rd.Next(100);
                while (ht.Contains(next))
                {
                    next = rd.Next(100);
                }
                ht.Add(next, 0);
                rdNumber[i] = next;
            }

 

思路二

 

            Random rd = new Random(100);
            int[] rdNumber = new int[100];

         List<int> lt = new List<int>(100);
            for (var i = 0; i < 100; i++)
            {
                lt.Add(i);
            }
            for (var i = 0; i < 100; i++)
            {
                int next = rd.Next(lt.Count);
                rdNumber[i] = lt[next];
               
                Console.WriteLine(lt[next]);
                lt.Remove(lt[next]);
            }

 

各位博友如有其它思路,请在回复贴出,不胜感激。