各位大侠:
    问题是这样的,数据库中有N个人(每个人有唯一ID)的记录。
  我想为这N个人每人随机分配一个小等于N的整数,要求不重复。不遗漏。
  就像有编号从1-N的N个座位为N个学生分派一样。

解决方案 »

  1.   

    题目的意思是,对N个人随机分配一个小于N的数,而且要求不重复,这是不可能的。
    因为N个人最少需要N个数来标号
      

  2.   


    原问题是:
    各位大侠: 
        问题是这样的,数据库中有N个人(每个人有唯一ID)的记录。 
      我想为这N个人每人随机分配一个小等于N的整数,要求不重复。不遗漏。 
      就像有编号从1-N的N个座位为N个学生分派一样。
      

  3.   

    会就会,不会就不会,没那多的话LZ,你看看这样行不行?using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] p = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
                int[] s = new int[10];
                int i = 0;
                Random rand = new Random();
                while (i < 10)
                {
                    int x = rand.Next(10);
                    if (s[x] == 0)
                    {
                        s[x] = x;
                        i++;
                        Console.WriteLine(p[x]);
                    }
                }
            }
        }
    }
      

  4.   

    对不起,写错了,更正一个地方            while (i < 10)
                {
                    int x = rand.Next(10);
                    if (s[x] == 0)
                    {
                        s[x] = 1;
                        i++;
                        Console.WriteLine(p[x]);
                    }
                }
      

  5.   

    数据库如果有random函数,又可以提供存储过程,建议你用存储过程调用random函数来实现。
      

  6.   

    用一个整形的数组里面存有1到N得数,放于链表中。再用Random来获取,获取一个删一个。我以前好像实现过
      

  7.   

    小弟太菜,以上大侠的建议都好,hyjchina 的我在试,crazylaa 的条件有,我写过无规律的随机数,这种有点束手无策,有时间的话,赐教一下,同时我自己再探索以下。谢谢。
      

  8.   

    我给你提供个思路吧 希望能给点分
    首先你的表结构需要有个suijiHao字段,这样的:
    id       name        suijiHaosuijiHao字段用来存储这个人的随机号。然后页面上需要有学生编号或是学生姓名的选择列表类的
    好了,我们说说代码
    1、选择页面上学生姓名(举个离子)点击按钮,后台生成随机号
    2、然后循环suijiHao字段,目的为了看该随机号是否可用,是否与数据库中重复
    3、重复的话,重新生成随机号
    4、不重复的话,更新该学生对应的suijiHao字段为最后生成的可用的随机号ok了
    提示:分有点少哦~
      

  9.   

    Random从池中取一个删一个的方法是可行的