1. using System;
  2.  
  3. namespace DotNet.Utilities
  4. {
  5. /// <summary>
  6. /// BaseRandom
  7. /// 产生随机数
  8. ///
  9. /// 随机数管理,最大值、最小值可以自己进行设定。
  10. /// </summary>
  11. public class BaseRandom
  12. {
  13. public static int Minimum = ;
  14. public static int Maximal = ;
  15. public static int RandomLength = ;
  16.  
  17. private static string RandomString = "0123456789ABCDEFGHIJKMLNOPQRSTUVWXYZ";
  18. private static Random Random = new Random(DateTime.Now.Second);
  19.  
  20. #region public static string GetRandomString() 产生随机字符
  21. /// <summary>
  22. /// 产生随机字符
  23. /// </summary>
  24. /// <returns>字符串</returns>
  25. public static string GetRandomString()
  26. {
  27. string returnValue = string.Empty;
  28. for (int i = ; i < RandomLength; i++)
  29. {
  30. int r = Random.Next(, RandomString.Length - );
  31. returnValue += RandomString[r];
  32. }
  33. return returnValue;
  34. }
  35. #endregion
  36.  
  37. #region public static int GetRandom()
  38. /// <summary>
  39. /// 产生随机数
  40. /// </summary>
  41. /// <returns>随机数</returns>
  42. public static int GetRandom()
  43. {
  44. return Random.Next(Minimum, Maximal);
  45. }
  46. #endregion
  47.  
  48. #region public static int GetRandom(int minimum, int maximal)
  49. /// <summary>
  50. /// 产生随机数
  51. /// </summary>
  52. /// <param name="minimum">最小值</param>
  53. /// <param name="maximal">最大值</param>
  54. /// <returns>随机数</returns>
  55. public static int GetRandom(int minimum, int maximal)
  56. {
  57. return Random.Next(minimum, maximal);
  58. }
  59. #endregion
  60. }
  61. }

BaseRandom

  1. using System;
  2.  
  3. namespace DotNet.Utilities
  4. {
  5. /// <summary>
  6. /// 使用Random类生成伪随机数
  7. /// </summary>
  8. public class RandomHelper
  9. {
  10. //随机数对象
  11. private Random _random;
  12.  
  13. #region 构造函数
  14. /// <summary>
  15. /// 构造函数
  16. /// </summary>
  17. public RandomHelper()
  18. {
  19. //为随机数对象赋值
  20. this._random = new Random();
  21. }
  22. #endregion
  23.  
  24. #region 生成一个指定范围的随机整数
  25. /// <summary>
  26. /// 生成一个指定范围的随机整数,该随机数范围包括最小值,但不包括最大值
  27. /// </summary>
  28. /// <param name="minNum">最小值</param>
  29. /// <param name="maxNum">最大值</param>
  30. public int GetRandomInt(int minNum, int maxNum)
  31. {
  32. return this._random.Next(minNum, maxNum);
  33. }
  34. #endregion
  35.  
  36. #region 生成一个0.0到1.0的随机小数
  37. /// <summary>
  38. /// 生成一个0.0到1.0的随机小数
  39. /// </summary>
  40. public double GetRandomDouble()
  41. {
  42. return this._random.NextDouble();
  43. }
  44. #endregion
  45.  
  46. #region 对一个数组进行随机排序
  47. /// <summary>
  48. /// 对一个数组进行随机排序
  49. /// </summary>
  50. /// <typeparam name="T">数组的类型</typeparam>
  51. /// <param name="arr">需要随机排序的数组</param>
  52. public void GetRandomArray<T>(T[] arr)
  53. {
  54. //对数组进行随机排序的算法:随机选择两个位置,将两个位置上的值交换
  55.  
  56. //交换的次数,这里使用数组的长度作为交换次数
  57. int count = arr.Length;
  58.  
  59. //开始交换
  60. for (int i = ; i < count; i++)
  61. {
  62. //生成两个随机数位置
  63. int randomNum1 = GetRandomInt(, arr.Length);
  64. int randomNum2 = GetRandomInt(, arr.Length);
  65.  
  66. //定义临时变量
  67. T temp;
  68.  
  69. //交换两个随机数位置的值
  70. temp = arr[randomNum1];
  71. arr[randomNum1] = arr[randomNum2];
  72. arr[randomNum2] = temp;
  73. }
  74. }
  75. #endregion
  76. }
  77. }

RandomHelper

  1. using System;
  2.  
  3. namespace DotNet.Utilities
  4. {
  5. public class RandomOperate
  6. {
  7. // 一:随机生成不重复数字字符串
  8. private int rep = ;
  9. public string GenerateCheckCodeNum(int codeCount)
  10. {
  11. string str = string.Empty;
  12. long num2 = DateTime.Now.Ticks + this.rep;
  13. this.rep++;
  14. Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
  15. for (int i = ; i < codeCount; i++)
  16. {
  17. int num = random.Next();
  18. str = str + ((char)(0x30 + ((ushort)(num % )))).ToString();
  19. }
  20. return str;
  21. }
  22.  
  23. //方法二:随机生成字符串(数字和字母混和)
  24. public string GenerateCheckCode(int codeCount)
  25. {
  26. string str = string.Empty;
  27. long num2 = DateTime.Now.Ticks + this.rep;
  28. this.rep++;
  29. Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
  30. for (int i = ; i < codeCount; i++)
  31. {
  32. char ch;
  33. int num = random.Next();
  34. if ((num % ) == )
  35. {
  36. ch = (char)(0x30 + ((ushort)(num % )));
  37. }
  38. else
  39. {
  40. ch = (char)(0x41 + ((ushort)(num % 0x1a)));
  41. }
  42. str = str + ch.ToString();
  43. }
  44. return str;
  45. }
  46.  
  47. #region
  48.  
  49. /// <summary>
  50. /// 从字符串里随机得到,规定个数的字符串.
  51. /// </summary>
  52. /// <param name="allChar"></param>
  53. /// <param name="CodeCount"></param>
  54. /// <returns></returns>
  55. private string GetRandomCode(string allChar, int CodeCount)
  56. {
  57. //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";
  58. string[] allCharArray = allChar.Split(',');
  59. string RandomCode = "";
  60. int temp = -;
  61. Random rand = new Random();
  62. for (int i = ; i < CodeCount; i++)
  63. {
  64. if (temp != -)
  65. {
  66. rand = new Random(temp * i * ((int)DateTime.Now.Ticks));
  67. }
  68.  
  69. int t = rand.Next(allCharArray.Length - );
  70.  
  71. while (temp == t)
  72. {
  73. t = rand.Next(allCharArray.Length - );
  74. }
  75.  
  76. temp = t;
  77. RandomCode += allCharArray[t];
  78. }
  79. return RandomCode;
  80. }
  81.  
  82. #endregion
  83. }
  84. }

RandomOperate

C# 随机数类的更多相关文章

  1. [19/03/18-星期一] 常用类_Math(数学)类&Rondom(随机数)类

    一.Math(数学)类(单独一个Java.Math 包中) java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型.如果需要更加强大的数学运算能力, ...

  2. 常用类--Date日期类,SimpleDateFormat日期格式类,Calendar日历类,Math数学工具类,Random随机数类

    Date日期类 Date表示特定的时间,精确到毫秒; 构造方法: public Data() public Date(long date) 常用方法: public long getTime() pu ...

  3. 随机数类 Random

    import java.util.Random; /* 随机数类 Random 需求: 编写一个函数随机产生四位的验证码. */ public class Demo5 { public static ...

  4. 随机数类Random

    我们来学习下,用来产生随机数的类Random,它也属于引用数据类型. 这个Random类,它可以产生多种数据类型的随机数,在这里我们主要介绍生成整数与小数的方式. l  方法简介 public int ...

  5. Java—Math类和随机数类

    一.Math类(主要封装算数运算的静态方法) 定义: Math是没有构造方法的. java语言中提供了一个执行数学基本运算的Math类,Math类包括常用的数学运算和一些数学函数.还提供了一些常用的常 ...

  6. Java基础教程——Random随机数类

    Random类 java.util.Random类用于产生随机数.需要导入包: import java.util.Random; 方法 解释 Random() 创建一个Random类对象 Random ...

  7. 2019.12.09 Random 随机数类

    //导包import java.util.Random;class Demo02 { public static void main(String[] args) { //创建Random对象 Ran ...

  8. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  9. 【转载】C#使用Random类来生成指定范围内的随机数

    C#的程序应用的开发中,可以使用Random随机数类的对象来生成相应的随机数,通过Random随机数对象生成随机数的时候,支持设置随机数的最小值和最大值,例如可以指定生成1到1000范围内的随机数.R ...

随机推荐

  1. dubbo事件通知机制(1)

    此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. dubbo事件通知机制:http://dubbo.io/books/dubbo-user-book/demos ...

  2. yield 学习

    什么是生成器 生成器是可以迭代的,但是你只可以读取它一次 ,因为它并不把所有的值放在内存中,它是实时地生成数据. yield 理解 通常的for...in...循环中,in后面是一个数组,这个数组就是 ...

  3. spring指导的index.html在spring文件夹中的位置

  4. luoguP5074 Eat the Trees

    https://www.luogu.org/problemnew/show/P5074 插头 $ dp $ 入门题 如果你还不会插头 $ dp $ 请右转 洛谷插头dp题解 虽然是入门题但还是逃不过分 ...

  5. html中设置data-*属性值 并在js中进行获取属性值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. sql—常用函数

    COUNT()函数 COUNT()函数返回匹配指定条件的行数 SQL COUNT(column_name) 语法 COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入): ...

  7. combining-filters

    The previous two examples showed a single filter in use. In practice, you will probably need to filt ...

  8. linux中rc.d目录下的文件

    参考 http://blog.sina.com.cn/s/blog_414d78870102vqj5.html http://www.360doc.com/content/12/0820/17/933 ...

  9. AWS 推出长期支持的 OpenJDK 免费分发版本 —— Amazon Corretto

    简评:听说 Oracle JDK 要收费了,Oracle 要限制 Java 的商业或生产用途,针对这个问题,AWS 将会推出 Amazon Corretto. Java 是 AWS 用户使用的最流行的 ...

  10. Win10将用户名修改为英文

    前言 最近重装了一次Win10系统,手贱地在引导里设置了中文的用户名.使用微软账户进行登录后,Win10以这个中文名建立了用户的文件夹,使得少数软件安装或使用过程中,保存路径不支持中文路径,从而报错, ...