zoukankan      html  css  js  c++  java
  • C# 随机数类

    using System;
    
    namespace DotNet.Utilities
    {
        /// <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
        }
    }
    BaseRandom
    using System;
    
    namespace DotNet.Utilities
    {
        /// <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
        }
    }
    RandomHelper
    using System;
    
    namespace DotNet.Utilities
    {
        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
        }
    }
    RandomOperate
  • 相关阅读:
    帆软查看注册用户的数据库信息
    [已解决]报错:sql server 返回结果出现中文乱码
    消除点击单元格时出现的黑框
    python tcp udp函数装饰器,无需亲自手写socket连接代码。
    介绍一个python代码自动运行在远程机器的三方包。
    python paramiko上传文件夹到linux
    filebeat自定义索引名,filebeat索引模板
    mydumper
    mysql误删ibd文件
    mysql update多字段时引发的一个问题
  • 原文地址:https://www.cnblogs.com/Liyuting/p/7059898.html
Copyright © 2011-2022 走看看