给大家出一道题,在DataTable中存储了这样一张表:
数组序号           数组值
1                 1,2,3,4,6,10,12
2                 1,4,5
3                 3,4,5,6,7,11现在要从1,2,3数组中随机抽取不重复的数值,要求每个数组中抽取3个,要确保尽可能每个数组中都能抽取到3个,且所有抽取出的数值不重复,并且抽取到的数值个数尽可能的多,请大家设计算法。这个是示例数据,题目本意是,在每个数组中任意存储了一堆不重复的数值,然后从每个数组中随机抽取不重复的数值,每个数组抽取N个,要尽可能每个数组中都能抽取到N个,且所有抽取出的数值不重复,而且要求抽取出的数值个数尽可能的多。(要考虑到的问题是:1.有些数组中存储的数值个数可能小于等于N;2.不同的数组存储的数值可能有重复)

解决方案 »

  1.   

    随机生成cell的行列值,取值。
      

  2.   

    至于获得不重复的随机数。我觉得不是太多的情况下,代码短最重要。这样问题少。
    http://topic.csdn.net/u/20100513/09/bc19c558-3ea6-4327-a675-78e461a2e5d0.html11楼的不懂seed就随便写一个
      System.Random rnd = new System.Random();
      IEnumerable<int> numbers = Enumerable.Range(1, 1000).OrderBy(r => rnd.Next()).Take(10);
      List<int> nums = numbers.ToList();
      

  3.   

    貌似没仔细看题目again...
    貌似不懂的说...
    排列组合的问题比较繁琐……
    忽略我的回复吧……