生成随机数


 /// <summary>
/// BaseRandom
/// 产生随机数
/// 
/// 随机数管理,最大值、最小值可以自己进行设定。
/// </summary>
public class BaseRandom
{
    public static int Minimum = 100000;
    public static int Maximal = 999999;
    public static int RandomLength = 6;
 
    private static string RandomString = "0123456789ABCDEFGHIJKMLNOPQRSTUVWXYZ";
    private static Random Random = new Random(DateTime.Now.Second);
 
    #region public static string GetRandomString() 产生随机字符
    /// <summary>
    /// 产生随机字符
    /// </summary>
    /// <returns>字符串</returns>
    public static string GetRandomString()
    {
        string returnValue = string.Empty;
        for (int i = 0; i < RandomLength; i++)
        {
            int r = Random.Next(0, RandomString.Length - 1);
            returnValue += RandomString[r];
        }
        return returnValue;
    }
    #endregion
 
    #region public static int GetRandom()
    /// <summary>
    /// 产生随机数
    /// </summary>
    /// <returns>随机数</returns>
    public static int GetRandom()
    {
        return Random.Next(Minimum, Maximal);
    }
    #endregion
 
    #region public static int GetRandom(int minimum, int maximal)
    /// <summary>
    /// 产生随机数
    /// </summary>
    /// <param name="minimum">最小值</param>
    /// <param name="maximal">最大值</param>
    /// <returns>随机数</returns>
    public static int GetRandom(int minimum, int maximal)
    {
        return Random.Next(minimum, maximal);
    }
    #endregion
}
GarsonZhang www.yesdotnet.com

 

 /// <summary>
/// 使用Random类生成伪随机数
/// </summary>
public class RandomHelper
{
    //随机数对象
    private Random _random;
 
    #region 构造函数
    /// <summary>
    /// 构造函数
    /// </summary>
    public RandomHelper()
    {
        //为随机数对象赋值
        this._random = new Random();
    }
    #endregion
 
    #region 生成一个指定范围的随机整数
    /// <summary>
    /// 生成一个指定范围的随机整数,该随机数范围包括最小值,但不包括最大值
    /// </summary>
    /// <param name="minNum">最小值</param>
    /// <param name="maxNum">最大值</param>
    public int GetRandomInt(int minNum, int maxNum)
    {
        return this._random.Next(minNum, maxNum);
    }
    #endregion
 
    #region 生成一个0.0到1.0的随机小数
    /// <summary>
    /// 生成一个0.0到1.0的随机小数
    /// </summary>
    public double GetRandomDouble()
    {
        return this._random.NextDouble();
    }
    #endregion
 
    #region 对一个数组进行随机排序
    /// <summary>
    /// 对一个数组进行随机排序
    /// </summary>
    /// <typeparam name="T">数组的类型</typeparam>
    /// <param name="arr">需要随机排序的数组</param>
    public void GetRandomArray<T>(T[] arr)
    {
        //对数组进行随机排序的算法:随机选择两个位置,将两个位置上的值交换
 
        //交换的次数,这里使用数组的长度作为交换次数
        int count = arr.Length;
 
        //开始交换
        for (int i = 0; i < count; i++)
        {
            //生成两个随机数位置
            int randomNum1 = GetRandomInt(0, arr.Length);
            int randomNum2 = GetRandomInt(0, arr.Length);
 
            //定义临时变量
            T temp;
 
            //交换两个随机数位置的值
            temp = arr[randomNum1];
            arr[randomNum1] = arr[randomNum2];
            arr[randomNum2] = temp;
        }
    }
    #endregion
}
GarsonZhang www.yesdotnet.com

 

public class RandomOperate
{
    // 一:随机生成不重复数字字符串  
    private int rep = 0;
    public string GenerateCheckCodeNum(int codeCount)
    {
        string str = string.Empty;
        long num2 = DateTime.Now.Ticks + this.rep;
        this.rep++;
        Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
        for (int i = 0; i < codeCount; i++)
        {
            int num = random.Next();
            str = str + ((char)(0x30 + ((ushort)(num % 10)))).ToString();
        }
        return str;
    }
 
    //方法二:随机生成字符串(数字和字母混和)
    public string GenerateCheckCode(int codeCount)
    {
        string str = string.Empty;
        long num2 = DateTime.Now.Ticks + this.rep;
        this.rep++;
        Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
        for (int i = 0; i < codeCount; i++)
        {
            char ch;
            int num = random.Next();
            if ((num % 2) == 0)
            {
                ch = (char)(0x30 + ((ushort)(num % 10)));
            }
            else
            {
                ch = (char)(0x41 + ((ushort)(num % 0x1a)));
            }
            str = str + ch.ToString();
        }
        return str;
    }
 
    #region
 
    /// <summary>
    /// 从字符串里随机得到,规定个数的字符串.
    /// </summary>
    /// <param name="allChar"></param>
    /// <param name="CodeCount"></param>
    /// <returns></returns>
    private string GetRandomCode(string allChar, int CodeCount)
    {
        //string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,i,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"; 
        string[] allCharArray = allChar.Split(',');
        string RandomCode = "";
        int temp = -1;
        Random rand = new Random();
        for (int i = 0; i < CodeCount; i++)
        {
            if (temp != -1)
            {
                rand = new Random(temp * i * ((int)DateTime.Now.Ticks));
            }
 
            int t = rand.Next(allCharArray.Length - 1);
 
            while (temp == t)
            {
                t = rand.Next(allCharArray.Length - 1);
            }
 
            temp = t;
            RandomCode += allCharArray[t];
        }
        return RandomCode;
    }
 
    #endregion
}
GarsonZhang www.yesdotnet.com

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:验证码生成
下一篇:C#汉字转拼音
评论列表

发表评论

评论内容
昵称:
关联文章

生成随机数
生成等长随机数值的方法
C# 时间戳、随机数相关操作
验证码生成
关于模型生成
重新生成package-lock.json
JS生成一个随机字符串
根据数据库生成表模型和实体
网站SEO优化-网站地图生成,SiteMap
C# 读取txt文件生成Word文档
c# IdHelper生成唯一的雪花Id
利用代码生成工具Database2Sharp生成ABP VNext框架项目代码
SQL中根据日期范围生成所有日期数据,批量生成日期
YESWEB开发框架API无法生成迁移脚本
C# Newtonsoft.Json.JsonConvert.SerializeObject生成格式化的JSON字符串
.NET Core生成后没有Nuget的dll文件
YESWEB web开发框架 增加流水单号生成规则
C# ThoughtWorks.QRCode 二维码生成和解析
EF强制生成SQL 2008兼容的SQL语句
bat脚本:生成项目并自动加壳发布