给你写了一个伪代码,自己实现下吧给点每个动物一个初始顺序
开始循环{
  生成随机整数V(范围1~N),N为剩余动物个数
  将剩余动物中的第V个放入下一个格子
  如果没有剩余动物,退出循环
}

解决方案 »

  1.   

    这不是order by newid()就行了吗....
    create table 动物园
    (
     动物 varchar(100)
    )
    insert 动物园 values('老虎1号')
    insert 动物园 values('老虎2号')
    insert 动物园 values('老虎3号')
    insert 动物园 values('老虎4号')
    insert 动物园 values('老虎5号')insert 动物园 values('大象1号')
    insert 动物园 values('大象2号')
    insert 动物园 values('大象3号')
    insert 动物园 values('大象4号')
    insert 动物园 values('大象5号').......insert 动物园 values('猴子55号')select * from 动物园 order by newid();
      

  2.   

    create table 动物园
    (
     动物 varchar(100)
    )
    insert 动物园 values('老虎1号')
    insert 动物园 values('老虎2号')
    insert 动物园 values('老虎3号')
    insert 动物园 values('老虎4号')
    insert 动物园 values('老虎5号')insert 动物园 values('大象1号')
    insert 动物园 values('大象2号')
    insert 动物园 values('大象3号')
    insert 动物园 values('大象4号')
    insert 动物园 values('大象5号').......insert 动物园 values('猴子55号')select * from 动物园 order by newid();
    ...吊炸了
      

  3.   

    半个月不见,你就升级从5000-到1W+分了
    分数都是浮云,又不能换RMB
      

  4.   

    给你写个demousing System;
    using System.Diagnostics;
    using System.Linq;namespace ConsoleApplication1
    {
        class Program
        {        static void Main(string[] args)
            {
                var a = (from n in Enumerable.Range(1, 5)
                         select "老虎_" + n)
                           .Concat(from n in Enumerable.Range(1, 10)
                                   select "大象_" + n)
                           .Concat(from n in Enumerable.Range(1, 30)
                                   select "河马_" + n)
                           .Concat(from n in Enumerable.Range(1, 55)
                                   select "猴子_" + n)
                           .ToList();
                var rnd = new Random();
                int p;
                for (var i = 1; i <= 100; ++i)
                {
                    p = rnd.Next(a.Count);
                    Console.WriteLine("格子 {0} 放 {1}", i, a[p]);
                    a.RemoveAt(p);
                }
                Debug.Assert(a.Count == 0);
                Console.WriteLine("________________End");
                Console.ReadKey();
            }
        }
    }
      

  5.   

    半个月不见,你就升级从5000-到1W+分了
    分数都是浮云,又不能换RMB
        那也大致能区分大神和我们新手的区别,,,
      

  6.   

    LZ 我告诉你一点原理吧  代码自己实现    
    首先将这100个动物放入集合或数组   
    再写个100次的循环
    循环里每次都生成一个随机数
    使用冒泡排序使得出来的动物不重复
    再将动物放到格子里
    OK 完成