随机数的应用相关
来源:互联网 发布:淘宝达人和微淘 编辑:程序博客网 时间:2024/04/28 16:48
基本随机数生成:
int seed = 8;
Random rnd = new Random(seed); //使用指定的种子seed初始化一个Random实例
int rndNum = rnd.Next(100); //返回0-99的随机数
随机数应用之验证码的生成:
public string RandomNum(int Len)
{
string str = "0,1,2,3,4,5,6,7,8,9,";
str += "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,";
str += "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[] s = str.Split(new char[] { ',' }); //将字符串拆分成字符串数组
string strNum = "";
int tag = -1; //用于记录上一个随机数的值,避免产生两个重复值
Random rnd = new Random();
//产生一个长度为Len的随机字符串
for (int i = 1; i <= Len; i++)
{
if (tag == -1)
{
rnd = new Random(i * tag * unchecked((int)DateTime.Now.Ticks)); //初始化一个Random实例
}
int rndNum = rnd.Next(0, 61); //返回小于61的非负随机数
//如果产生与前一个随机数相同的数,则重新生成一个新随机数
if (tag != -1 && tag == rndNum)
{
return RandomNum(Len);
}
tag = rndNum;
strNum += s[rndNum];
}
//将生成的随机码保存到Session中
Session["CheckCode"] = strNum;
return strNum;
}
注解:
1、unchecked: unchecked 关键字用于取消整型算术运算和转换的溢出检查。
unchecked
{
int val = 2147483647 * 2;
}
因为上面的计算在 unchecked 块中执行,所以结果对于整数来说太大这一事实被忽略,并且 val 被赋予值 -2。如果省略 unchecked,将产生编译错误。unchecked 关键字还可以用作运算符,如下所示:
public int UncheckedAdd(int a, int b)
{
return unchecked(a + b);
}
2、DateTime.Now.Ticks:获取表示此实例的日期和时间的计时周期数(时间刻度)。
int seed = 8;
Random rnd = new Random(seed); //使用指定的种子seed初始化一个Random实例
int rndNum = rnd.Next(100); //返回0-99的随机数
随机数应用之验证码的生成:
public string RandomNum(int Len)
{
string str = "0,1,2,3,4,5,6,7,8,9,";
str += "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,";
str += "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[] s = str.Split(new char[] { ',' }); //将字符串拆分成字符串数组
string strNum = "";
int tag = -1; //用于记录上一个随机数的值,避免产生两个重复值
Random rnd = new Random();
//产生一个长度为Len的随机字符串
for (int i = 1; i <= Len; i++)
{
if (tag == -1)
{
rnd = new Random(i * tag * unchecked((int)DateTime.Now.Ticks)); //初始化一个Random实例
}
int rndNum = rnd.Next(0, 61); //返回小于61的非负随机数
//如果产生与前一个随机数相同的数,则重新生成一个新随机数
if (tag != -1 && tag == rndNum)
{
return RandomNum(Len);
}
tag = rndNum;
strNum += s[rndNum];
}
//将生成的随机码保存到Session中
Session["CheckCode"] = strNum;
return strNum;
}
注解:
1、unchecked: unchecked 关键字用于取消整型算术运算和转换的溢出检查。
unchecked
{
int val = 2147483647 * 2;
}
因为上面的计算在 unchecked 块中执行,所以结果对于整数来说太大这一事实被忽略,并且 val 被赋予值 -2。如果省略 unchecked,将产生编译错误。unchecked 关键字还可以用作运算符,如下所示:
public int UncheckedAdd(int a, int b)
{
return unchecked(a + b);
}
2、DateTime.Now.Ticks:获取表示此实例的日期和时间的计时周期数(时间刻度)。
每个计时周期表示一百纳秒,即一千万分之一秒。此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00以来经过的以 100 纳秒为间隔的间隔数。
- 随机数的应用相关
- 随机数的相关概念
- C#随机数的应用
- 随机数的简单应用
- 随机数的应用
- 随机数的相关面试题
- 随机数的相关面试题
- C#随机数的应用[原创]
- C#随机数的应用[原创]
- 随机数函数的应用归纳
- java random随机数的应用
- shell中随机数的应用
- c++中随机数的应用
- LINUX之随机数的应用
- 随机数相关
- 随机数相关
- 随机数相关
- 与随机数相关的小程序
- 自动填表单提交
- PHP绘制渐变颜色图片
- float型保留小数点后2位
- string与stringbuilder的区别
- GPS初步学习
- 随机数的应用相关
- HDU 1003 Max Sum + 单调队列优化dp解法
- 再谈升/降序子序列——POJ1631
- 日期类型的数据相减
- opencv 连通区域的最小外接矩形
- Spring事务管理一:Spring事务管理的优点
- 第二章 算法分析
- Create Your Own Search Engine with Python 用python创建你自己的搜索引擎(二)
- ajax中弹出提示框