一返回指定范围的不重复随机数类

原创 2007年09月28日 17:04:00

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;

/// <summary>
/// Summary description for RandomCls
/// </summary>
public class RandomCls : Random
{

    private ArrayList element = null;
    private int min;
    private int max;

    public RandomCls(int min, int max)
    {
        this.min = min;
        this.max = max;
        element = new ArrayList();
    }

    public void add(int index)
    {
        if (!element.Contains(index))
            element.Add(index);
    }

    public object this[int index]
    {
        get { return element[index]; }
        set { element[index] = value; }
    }

    public override int Next()
    {
        return base.Next(this.min, this.max);
    }

    public int getDifferenceRandomNumber()
    {
        int number ;
        do
            number = this.Next(min, max);
        while (element.Contains(number) && element.Count < max - 1);
        add(number);
        return number;
    }

    public int[] getArrayRandom()
    {
        int[] temp = new int[max - min];
        for (int i = 0; i < max - min; i++)
        {
            temp[i] = getDifferenceRandomNumber();
        }
        return temp;
    }
}

 

调用:

        int[] array = new int[100];
        RandomCls randomUsr = new RandomCls(1, 100);
        array = randomUsr.getArrayRandom();


用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串

前言:         RAND函数,返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。 一,朋友问题描述如下: (1),有一个用户表,有id,用户的真实名字,年...
  • haoyuxuan
  • haoyuxuan
  • 2015年04月28日 12:03
  • 552

js生成指定范围内指定长度随机不重复的字符串数组

整理了一下随机生成指定范围内指定长度且不重复的字符串数组的方法。不多说,直接上代码。 var getArrStr = {         dataArr: [],         getConfi...
  • sinat_31692831
  • sinat_31692831
  • 2016年07月07日 11:21
  • 1585

Math生成指定范围内不重复的随机数方法

java的Math生成指定范围内不重复的随机数方法       利用Math生成随机数的时候会产生重复数据,当指定范围的时候,比如生成33以内的指定的6个数时,生成的数据不免有重复,当生成的随机数目越...
  • xwjwh
  • xwjwh
  • 2013年11月10日 19:47
  • 873

java生成指定范围的随机数

java生成指定范围的随机数
  • u013905744
  • u013905744
  • 2017年06月20日 10:00
  • 4841

VB中产生10个不重复的随机数

前几天听了米老师的课,才知道自己真的是学得都是似懂非懂,“一桶水不满,半桶水晃荡”这个比喻是最恰当不过了。         米老师经常告诉我们说要脚踏实地地学习,那何为脚踏实地呢?我的理解是把你在哪一...
  • u010927640
  • u010927640
  • 2013年06月07日 18:05
  • 7181

sql 生成随机数 以及不重复随机数

背景:想在表中随机取10条记录,让取出来的数据不重复(表中必须是有个递增列,且递增从1开始间隔为1)。  数据表: CREATE TABLE testable  (  id INT  IDEN...
  • sd19871122
  • sd19871122
  • 2015年11月07日 16:33
  • 1223

c语言中生成某一范围的随机数

C语言中用rand()函数产生20-90的随机整数 20-90共有71个数字,所以是rand()%71+20 ; 用rand()生成-20-20的随机数 -20-20共有41个数字,所以是rand(...
  • u010141928
  • u010141928
  • 2017年05月09日 10:14
  • 1487

生成指定范围内的随机数

生成指定范围的随机数
  • as875784622
  • as875784622
  • 2017年08月02日 10:07
  • 181

黑马程序员——C#怎么在一定范围内生成不重复的随机数

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------- 今天想做个拼图游戏练习一下,碰到一...
  • jingxuan2583
  • jingxuan2583
  • 2013年07月06日 18:31
  • 829

如何生成100个1-100以内的不重复的随机数

这是个经典的面试题目:生成长度为100的数组,插入1-100以内的但均不重复的随机数一、简单实现思路:(1) 把N个数放入Hashtable 或者arrayList 中.(2) 从上面的集合中随机抽取...
  • u010983881
  • u010983881
  • 2016年01月22日 23:52
  • 6227
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一返回指定范围的不重复随机数类
举报原因:
原因补充:

(最多只允许输入30个字)