最简单的.NET生成随机数函数
for (int i = 0; i > 100; i++)
{
Console.WriteLine(new Random(i).Next());
}
就会看到很有规律的一串数
许多人想到时间,DateTime.Now.Ticks,首先这个属性是long,与Random构造函数的参数不符,你需要做一定处理,而且在机器很快的情况下,短时间内这个数字不会有变化,生成的“随机数”也就都是一样的。于是网上介绍的许多方法会用Ticks相乘、或者乘以i等做一些处理,让这个种子看上去随机一些,不过还是显得麻烦。
其实,在.Net中,说道随机,最先想到的就是Guid.NewGuid(),但Guid是Guid的格式,怎么转换成你自己的格式呢?
HashCode!
.Net中,所有类继承于object,而所有的object都会有Equals()和GetHashCode()两个方法,而GetHashCode()的返回值,正是Random类构造函数所需要的int,这么方便的东西,我们当然要利用一下,所以,很容易写下了如下代码。
代码如下:
static string GetCode(int num)
{
string a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuilder sb = new StringBuilder();
for(int i = 0; i < num; i++)
{
sb.Append(a[new Random(Guid.NewGuid().GetHashCode()).Next(0, a.Length -1)]);
}
return sb.ToString();
}
相关推荐
-
最简单的.NET生成随机数函数
如果你做个实验 复制代码 代码如下: for (int i = 0; i > 100; i++) { Console.WriteLine(new Random(i).Next()); } 就会看到很有规律的一串数 许多人想到时间,DateTime.Now.Ticks,首先这个属性是long,与Random构造函数的参数不符,你需要做一定处理,而且在机器很快的情况下,短时间内这个数字不会有变化,生成的"随机数"也就都是一样的.于是网上介绍的许多方法会用Ticks相乘.或者乘以i等做
-
生成随机数rand函数的用法详解
函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子.如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand().而使用同种子相同的数调用 srand()会导致相同的随机数序列被生成.srand((unsigned)time(NULL))则使用系统定时/计数器的值做为随机种子.每个种子对应一组根据算法预先生成的随机数,所以,在相同的平台环境下,不同时间产生的随机数会是不同的,相应的,若将srand(unsigned)tim
-
在PHP模板引擎smarty生成随机数的方法和math函数详解
这个当然绝对是可行的,但过于复杂,下面作者就如何直接在smarty模板中生成随机数这个小技巧和大家分享一下. 现在假设在smarty模板中需要生成一个125-324之间的随机数,那么可以按如下写法: 复制代码 代码如下: {math equation=rand(125,324)} 这样就实现了我们的目的了,怎么样?是不是很简单,其实这里主要用到了smarty模板中的math函数,下面对Smarty math函数的作用以及用法做个简要的讲解. math 允许模板设计者在模板中进行数学表达式运算.
-
Python简单生成随机数的方法示例
本文实例讲述了Python简单生成随机数的方法.分享给大家供大家参考,具体如下: 主要知识点: 随机整数: random.randint(a,b):返回随机整数x,a<=x<=b 包含范围的随机整数 random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值. 0-1之间的随机浮点数 随机实数:random.random():返回0到1之间的浮点数 指定范围的随机浮点数 random.uniform(a
-
php简单生成随机数的方法
本文实例讲述了php简单生成随机数的方法.分享给大家供大家参考.具体如下: <?php /** *生成随机数,可用户验证码 *@param */ function randStr($m = 5) { $new_str = ''; $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwsyz0123456789'; $max=strlen($str)-1; for ($i = 1; $i <= $m; ++$i) { $new_str
-
JS简单生成随机数(随机密码)的方法
本文实例讲述了JS简单生成随机数(随机密码)的方法.分享给大家供大家参考,具体如下: 1. Math.random()生成一个0~1的随机数 0<=Math.random()<1 2. Math.random()*100 则生成一个0~100之间的随机数 3. Math.random()*100 + 100 则生成一个100~200之间的随机数 4. 所以Math.random()*m 则生成一个0~m的随机数 实例代码如下: <!DOCTYPE html PUBLIC "-/
-
C/C++产生随机数函数简单介绍
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子.(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了.) 我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,
-
numpy中生成随机数的几种常用函数(小结)
1.使用numpy生成随机数的几种方式 1)生成指定形状的0-1之间的随机数:np.random.random()和np.random.rand() array1 = np.random.random((3)) display(array1) # ----------------------------------- array2 = np.random.random((3,4)) display(array2) # ----------------------------------- arr
-
JavaScript生成随机数的4种自定义函数分享
第一种方法 /* *@desc:生成随机字符串 *@remark:toString方法可以接收一个基数作为参数的原理,这个基数从2到36封顶.如果不指定,默认基数是10进制 */ function generateRandomAlphaNum(len) { var rdmString = ""; for (; rdmString.length < len; rdmString += Math.random().toString(36).substr(2)); return rdm
-
JS实现的生成随机数的4个函数分享
第一种方法 复制代码 代码如下: /* *@desc:生成随机字符串 *@remark:toString方法可以接收一个基数作为参数的原理,这个基数从2到36封顶.如果不指定,默认基数是10进制 */ function generateRandomAlphaNum(len) { var rdmString = ""; for (; rdmString.length < len; rdmString += Math.random().toString(36).sub
随机推荐
- JS字符串长度判断,超出进行自动截取的实例(支持中文)
- JavaScript实现数组在指定位置插入若干元素的方法
- SpringMVC整合mybatis实例代码
- js实现前端分页页码管理
- 教你如何用php实现LOL数据远程获取
- php 使用GD库为页面增加水印示例代码
- Python中在脚本中引用其他文件函数的实现方法
- MySQL的Grant命令详解
- Javascript中的 “&” 和 “|” 详解
- python基础教程之udp端口扫描
- AS打造的复制粘贴等功能类
- Jquery乱码的一次解决过程 图解教程
- JavaScript创建一个object对象并操作对象属性的用法
- 在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述
- 实例讲解Android应用开发中TabHost的使用要点
- 基于一个应用程序多线程误用的分析详解
- C++中char*转换为LPCWSTR的解决方案
- js函数中onmousedown和onclick的区别和联系探讨
- Spring 5.0集成log4j2日志管理的示例代码
- Java原生方法实现 AES 算法示例