class Program
    {
        static void Main(string[] args)
        {
            List<Node> list = new List<Node>();
            Random r = new Random();
            for (int i = 0; i < 100; i++)
            { 
                list.Add(new Node{Index=i,Value=r.Next(0,100)});            
            }            list.Sort(delegate(Node a, Node b) { return a.Value - b.Value; });            foreach (Node node in list)
            {
                Console.WriteLine(node.Index);
            }
            Console.ReadKey();
        }
    }    class Node
    {
        public int Index
        {
            get;set;
        }
        public int Value
        {
            get;set;
        }        
    }这个可行不,谁有好点的办法

解决方案 »

  1.   

    Random rand = new Random(Guid.NewGuid().GetHashCode());
    rand .Next(最小值,最大值)
    Random rnd = new Random(DateTime.Now.Millisecond);
     
     Enumerable.Range(1, 100).OrderBy(Guid.NewGuid()); 
      

  2.   

    Random ran=new Random();
    int a=ran.Next(0,101);
    console.Write("a.toString");
      

  3.   


                List<int> NumList = new List<int>();
                Random rand = new Random();
                while (NumList.Count < 100)
                {
                    int Num = rand.Next(1, 1000);
                    if (!NumList.Contains(Num))
                        NumList.Add(Num);
                }
      

  4.   

    顶楼上,guid是生成唯一标示吧,够狠的
      

  5.   

    private void ReadomTest()
    {
        IList<int> list = new List<int>();
        for (int i = 0; i < 100; i++)
        {
            list = GetNum(list);
        }
    }
        private IList<int> GetNum(IList<int> list)
        {
            Random r = new Random();
            int x = r.Next(0, 101);
            if (list.Contains(x))
                list = GetNum(list);
            else
                list.Add(x);
            return list;
        }
      

  6.   

    class Class1
        {        public void Fun_Rdm(int maxValue)
         {
             List<int> NumList = new List<int>();
             Random rand = new Random();
             int i = 1;
             while (true)
             {             int Num = rand.Next(0, maxValue);
                 if (!NumList.Contains(Num))
                 {
                     NumList.Add(Num);
                     Console.WriteLine("第{0}个数为{1}", i++, Num);
                 }
                 if (NumList.Count == 100) break;
             }    }
            public static void Main()
            {
                Class1 class1 = new Class1();
                class1.Fun_Rdm(101);        }
        }
      

  7.   


    既然是算法, 就不要用自带工具:int[] data = new int[101];
    for (int i = 0; i <= 100; )
    {
        data[i] = i++;
    }Random rand = new Random();
    for (int i = 0; i <= 100; i++)
    {
        int r = rand.Next(0, 101);
        int v = data[r];
        data[r] = data[i];
        data[i] = v;
    }for (int i = 0; i <= 100; i++)
    {
        System.Out.Print(data[i]);
    }
      

  8.   


    Enumerable.Range(1, 100).OrderBy(Guid.NewGuid());
    能这样写吗?
      

  9.   


       List<int> NumList = new List<int>();
                Random rand = new Random();
                while (NumList.Count < 100)
                {
                    int Num = rand.Next(1, 1000);
                    if (!NumList.Contains(Num))
                        NumList.Add(Num);
                }
      

  10.   

    要是有错我把它吃了。。昨天看错了
    class Program
        {
            List<int> list1 = new List<int>();
            List<int> list2 = new List<int>();
            static void Main(string[] args)
            {
                Program pro = new Program();
                pro.Test();
                pro.Test2();
            }
            public void Test()
            {
                for (int i = 0; i < 101; i++)
                {
                    list1.Add(i);
                }
            }
            int q = 101;
            public void Test2()
            {
                if (q > 0)
                {
                    Random ran = new Random();
                    int a = ran.Next(0, q);
                    list2.Add(list1[a]);
                    list1.Remove(list1[a]);
                    q--;
                    Test2();
                }
                else
                {
                    foreach (int i in list2)
                    {
                        Console.WriteLine(i);
                    }
                }
                 
                
            }
        }
      

  11.   


    Random random = new Random();LinkedList<int> lList=new LinkedList<int>();for(i=1;i<=100;i++)
    {
        lList.add(i);
    }for(i=1;i<=100;i++)
    {
    int iRan = random .Next(0,l00-i);// 取随机数
    lList[iRan];
    }随便写的就是这个意思  没有测试
      

  12.   

    Random random = new Random();LinkedList<int> lList=new LinkedList<int>();for(i=1;i<=100;i++)
    {
        lList.add(i);
    }for(i=1;i<=100;i++)
    {
    int iRan = random .Next(0,l00-i);// 取随机数
    lList[iRan];lList.RemoveAt(iRan);
    }不好意思 写错了
      

  13.   

    public static void RandOutput(int[] data,ref int flag)//data数组用于记录己经产生的随机数,flag用于标记当前data数组中最后一个元素的下标
    {
       Rand rand=new Rand();//创建一个随机数类的实例
        while(1)
       { 
           int i=rand.next(0,100);//产生一个0到100的随机数
           while(1)
          { 
              for(int j=0;j<=d;j++)
             {
                if(i!=d)//产生了不重复的随机数,函数返回
                {
                  Console.WriteLine("产生的随机数为:{0}",i);
                  data[++flag]=i;
                  return;
                }
                i=rand.next(0,100);//没有产生不重复的随机数,继续产生随机数
             }
          }
    }
      

  14.   

    ArrayList numbers = new ArrayList();
    for (int i = 0; i < 100; i++)
    numbers.Add(i);
    Random rd = new Random();
    int index;
    for (int i = 0; i < 100; i++)
    {
    index = rd.Next(numbers.Count);
    Response.Write(numbers[index] + "<br/>");
    numbers.RemoveAt(index);
    }
      

  15.   

    用数组的话:
    int[] numbers = new int[100];
    for (int i = 0; i < 100; i++)
    numbers[i] = i;
    Random rd = new Random();
    int index, realLength = numbers.Length, temp;
    for (int i = 0; i < 100; i++)
    {
    index = rd.Next(realLength);
    Response.Write(numbers[index] + "<br/>");
    temp = numbers[index];
    numbers[index] = numbers[realLength - 1];
    numbers[realLength - 1] = temp;
    realLength--;
    }
      

  16.   

    int[] data = new int[101];
    for (int i = 0; i <= 100; )
    {
        data[i] = i++;
    }Random rand = new Random();
    for (int i = 0; i <= 100; i++)
    {
        int r = rand.Next(0, 101);
        int v = data[r];
        data[r] = data[i];
        data[i] = v;
    }for (int i = 0; i <= 100; i++)
    {
        System.Out.Print(data[i]);
    }
      

  17.   

     class Program
        {
            static void Main(string[] args)
            {
              int[] array = new int[100]; //定义一个长度为100数组
                for (int i = 0; i < array.Length; i++)
                {
                label://标签
                    Random Rnd = new Random();
                    int a = (int)Rnd.Next(1, 101);
                    array[i] = a;   //产生随机数赋值给数组
                    for (int j = 0; j < i; j++)
                    {
                        //判断随机数是否有重复
                        if (array[j] == array[i])
                        {
                            goto label; //跳转执行到label,继续产生随机数
                        }
                    }
                    Console.Write(array[i] + " \t");//输出数组中的元素
                }
            }
        }
      

  18.   

    只需要  list.Sort() 改动它就成,让他不根据A,b本身返回,而是直接随机返回-1,0,1这个3态结果即可就像老p说滴,只是重新洗牌而已
      

  19.   

    http://topic.csdn.net/u/20101014/10/a8c40934-022f-4141-b726-cca395e8b256.html?83258/*
    2层循环纯算法;
    用list<>优化的2层循环纯算法;
    用Arraylist,Contains,Add筛选的;
    先生成随机数组,然后洗牌;
    */
    //以及为了实现而实现的方法,机器不好的不要跑了,效率很高:
    import java.util.Random;
    public class test {
        public static void main(String[] args) {
            byte list[] = new byte[3000];
            
            for(int i=0;i<list.length;i++){
                list[i] = 0;
            }
            
            Random random = new Random();
            int k = 0;
            
            for(int j=0;j<1000;j++){
                k = random.nextInt(2000);
                
                if(list[k] == 1){
                    System.out.println(k+"已存在数组中");
                }else{
                    System.out.println(k+"不在数组中,将它放入");
                    list[k] = 1;
                }
            }
            
            System.out.println("数组的内容是:");
            for(int l=0;l<list.length;l++){
                if(list[l] == 1){
                    System.out.print(l+",");
                }
            }
        }
    }
    精彩代码期待以后的牛人们实现。。