zoukankan      html  css  js  c++  java
  • [C#] 简单的 Helper 封装 -- RandomHelper

     1 using System;
     2 
     3 namespace Wen.Helpers
     4 {
     5     /// <summary>
     6     /// 随机数助手
     7     /// </summary>
     8     public sealed class RandomHelper
     9     {
    10         /// <summary>
    11         /// 字符集合(去掉 0oO 这几个容易混淆的字符)
    12         /// </summary>
    13         private const string CharSet = "123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ~!@#$%^&*()_+|" ;
    14 
    15         private static readonly Random Random = new Random ();
    16 
    17         #region Next
    18 
    19         /// <summary>
    20         /// 返回非负随机数
    21         /// </summary>
    22         /// <returns> 大于等于零且小于 System.Int32.MaxValue 的 32 位带符号整数 </returns>
    23         public static int Next()
    24         {
    25             return Random.Next();
    26         }
    27 
    28         /// <summary>
    29         /// 返回一个指定范围内的随机数
    30         /// </summary>
    31         /// <param name="maxValue"> 要生成的随机数的上限(随机数不能取该上限值)。maxValue 必须大于或等于零 </param>
    32         /// <returns>
    33         /// 大于等于零且小于 maxValue 的 32 位带符号整数,即:返回值的范围通常包括零但不包括 maxValue。 不过,如果 maxValue 等于零,则返回 maxValue。
    34         /// </returns>
    35         public static int Next( int maxValue)
    36         {
    37             return Random.Next(maxValue);
    38         }
    39 
    40         /// <summary>
    41         /// 返回一个指定范围内的随机数
    42         /// </summary>
    43         /// <param name="minValue"> 返回的随机数的下界(随机数可取该下界值) </param>
    44         /// <param name="maxValue"> 返回的随机数的上界(随机数不能取该上界值)。 maxValue 必须大于或等于 minValue</param>
    45         /// <returns>
    46         /// 一个大于等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue。
    47         /// 如果 minValue 等于 maxValue,则返回 minValue。
    48         /// </returns>
    49         public static int Next( int minValue, int maxValue)
    50         {
    51             return Random.Next(minValue, maxValue);
    52         }
    53 
    54         #endregion Next
    55 
    56         /// <summary>
    57         /// 返回一个介于 0.0 和 1.0 之间的随机数
    58         /// </summary>
    59         /// <returns> 大于等于 0.0 并且小于 1.0 的双精度浮点数 </returns>
    60         public static double NextDouble()
    61         {
    62             return Random.NextDouble();
    63         }
    64 
    65         /// <summary>
    66         /// 返回一个随机字符串
    67         /// </summary>
    68         /// <param name="length"> 字符串长度 </param>
    69         /// <returns></returns>
    70         public static string NextString( int length)
    71         {
    72             var arr = new char[length];
    73 
    74             for (var i = 0; i < length; i++)
    75             {
    76                 var index = Random.Next(CharSet.Length);
    77                 arr[i] = CharSet[index];
    78             }
    79 
    80             return string .Join( "", arr);
    81         }
    82     }
    83 }
  • 相关阅读:
    [JSOI2007]文本生成器 --- AC自动机 + DP
    [POI2000]病毒 --- AC自动机
    [HNOI2011]数学作业 --- 矩阵优化
    [BZOJ4245][ONTAK2015]OR-XOR(贪心)
    [BZOJ4247]挂饰(DP)
    [BZOJ4032][HEOI2015]最短不公共子串(Trie+DP)
    [BZOJ4028][HEOI2015]公约数数列(分块)
    [BZOJ4027][HEOI2015]兔子与樱花(贪心)
    [BZOJ4004][JLOI2015]装备购买(贪心+线性基)
    [HDU5029]Relief grain(树链剖分+线段树)
  • 原文地址:https://www.cnblogs.com/liqingwen/p/6131665.html
Copyright © 2011-2022 走看看