当前位置:  编程技术>.net/c#/asp.net

有关c# 随机函数的实例详解

    来源: 互联网  发布时间:2014-08-30

    本文导语:  先来看一个c#随机函数的例子。   代码示例: private static char[] constant = { '0','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', 'A','B','C','D','E','F','G','H','I','J','K','L','M','...

先来看一个c#随机函数的例子。
 

代码示例:
private static char[] constant =
{
'0','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',
'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'
};
public static string GenerateRandomNumber(int Length)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62);
Random rd = new Random();
for (int i = 0; i < Length; i++)
{
newRandom.Append(constant[rd.Next(62)]);
}
return newRandom.ToString();
}

如何在一段数字区间内随机生成若干个互不相同的随机数,比如在从1到20间随机生成6个互不相同的整数,并通过此文介绍Visual c#中随机数的用法。

.net.Frameword中提供了一个专门产生随机数的类System.Random,此类默认情况下已被导入,编程过程中可以直接使用。
计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。

可以用以下两种方法初始化一个随机数发生器;
函数是这样用,比如100至999的随机数
 

代码示例:
Random ran=new Random();
int RandKey=ran.Next(100,999);
 

这样会有重复,可以给Random一个系统时间做为参数,以此产生随机数,就不会重复了。

方法1,不指定随机种子,系统自动选取当前时前作随机种子:
 

代码示例:
Random ra=new Random();

方法2,指定一个int型的参数作为随机种子:
 

代码示例:
int iSeed=6;
Random ra=new Random(iSeed);

妆下来,用到Random.Next()方法产生随机数。
 

代码示例:
ra.Next();

它返回一个大于或等于零而小于2,147,483,647的数。

下面介绍它的重载函数和其它一些方法。
 

代码示例:
publicvirtualint Next(int);
用法:ra.next(20)

返回一个小于所指定最大值(此处为20)的正随机数。
 

代码示例:
publicvirtualint Next(int minValue, int maxValue);
用法:ra.next(1,20)
 

返回一个指定范围内(此处为1-20之间)的随机数,我们在下面的实例中会用到此函数。

类System.Random还有几个方法。

公共方法:
NextBytes用随机数填充指定字节数组的元素。
NextDouble返回一个介于 0.0 和 1.0 之间的随机数。

受保护的方法:
Sample返回一个介于 0.0 和 1.0 之间的随机数,只允许子类对象访问。

来看具体的实例吧。
要在一段数字区间内随机生成若干个互不相同的随机数,比如在从1到20间随机生成6个互不相同的整数。
主要是下面两个函数getRandomNum与getNum:
 

代码示例:
publicint[] getRandomNum(int num,int minValue,int maxValue)
{
Random ra=new Random(unchecked((int)DateTime.Now.Ticks));
int[] arrNum=newint[num];
int tmp=0;
for (int i=0;i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有关Java构造函数的问题之一——缺省性
  • 怎么查找有内核函数及其有关信息???
  • 有关函数隐藏的问题
  • 有关sin,con,tan函数的问题
  • 有关system函数打开网页的
  • 有关在makefile中使用shell函数的问题
  • linux下有这样的函数吗?有关系统时间
  • Linux编程:有关read()函数的问题
  • 有关system()这个函数
  • 有关 grep命令 之 函数查找时 屏蔽link的问题
  • 有关malloc函数的问题
  • linux/unix里的进程互斥问题 ,有关lockf()函数!
  • MYSQL中有关SUM字段按条件统计使用IF函数(case)问题
  • 这个问题和fclose()函数有关系么?
  • 有关Java构造函数的问题之三——继承性
  • 有关Java构造函数的问题之二——实例性
  • 还是有关fork的问题,fork在一个函数中调用,我被搞胡涂了
  • 有关线程的一些数据结构及函数求教。。
  • 有关时间函数gmtime()的问题?(急需,谢谢先!)
  • 请教有关 fork 和 sprintf 函数的问题
  • ​有关Docker的八个令人难以置信的事实
  • 有关内码转换(跟HttpServletRequest有关)
  • 求有关png图像处理的libpng库的有关中文资料
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • 求教有关smartupload的问题,有关就给分!!
  • 网络技术 iis7站长之家
  • 有关在sco unix5.0.4下有关网卡设置的问题(非常急,高分相送)
  • 有关snmp的一个很菜,但是困扰了我很久的问题,有关工作原理的,望大家赐教
  • 有关KDevelop编程的资料
  • 有关集群与数据同步
  • 请教有关英文简历方面的词句!




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3