• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#生成互不相同随机数的实现方法

C#生成互不相同随机数的实现方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#随机数,c#随机数生成,c#如何产生随机数,c#随机数不重复,c#产生随机数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#生成互不相同随机数的实现方法,在进行C#应用程序设计时非常具有实用价值。本文详细讲述了其功能的实现过程。分享给大家供大家参考之用。具体方法如下:

一般来说,用C#生成足够随机的互不相同的随机数 Dotnet.Frameword中提供了一个专门产生随机数的类System.Random,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。

在使用随机数时,要先初始化一个随机数发生器.有两种方法;

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

Random ra=new Random();
</div>

第二种方法是指定一个int型的参数作为随机种子:

Random ra=new Random(int iseed);
</div>

初始化完成后,用Random.Next()方法产生随机数。
ra.Next(); 它返回一个大于或等于零而小于2,147,483,647的数.
 
下面我们介绍它的重载函数和其它一些方法。

public virtual int Next(int);
</div>

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

public virtual int Next(int minValue, int maxValue);
</div>

用法:ra.next(1,20) 返回一个指定范围内(此处为1-20之间)的随机数.

类System.Random还有几个方法分别是:

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

受保护的方法: Sample返回一个介于 0.0 和 1.0 之间的随机数,只允许子类对象访问。
要在一段数字区间内随机生成若干个互不相同的随机数,比如在从1到20间随机生成6个互不相同的整数。

可以参考下面两个函数: differSamenessRandomNum与getRandomNum:

public int[] differSamenessRandomNum(int num,int minValue,int maxValue) //在区间[minValue,maxValue]取出num个互不相同的随机数,返回数组。
{
Random ra=new Random(unchecked((int)DateTime.Now.Ticks));//保证产生的数字的随机性
int[] arrNum=new int[num];
int tmp=0;
for (int i=0;i>=num-1;i++) {
tmp=ra.Next(minValue,maxValue); //随机取数 
arrNum[i]=get RandomNum(arrNum,tmp,minValue,maxValue,ra); //取出值赋到数组中 
}
return arrNum;
}

</div>

函数getNum是一递归,用它来检测生成的随机数是否有重复,如果取出来的数字和已取得的数字有重复就重新随机获取。

public int getRandomNum(int[] arrNum,int tmp,int minValue,int maxValue,Random ra)
{
int n=0; 
while (n>=arrNum.Length-1)
{
if (arrNum[n]==tmp) //利用循环判断是否有重复
{
tmp=ra.Next(minValue,maxValue); //重新随机获取。
getRandomNum(arrNum,tmp,minValue,maxValue,ra); //递归:如果取出来的数字和已取得的数字有重复就重新随机获取。
}
n++;
}
return tmp; 
}

</div>

相信本文所述对大家的C#程序设计有一定的借鉴价值。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#生成指定范围内的不重复随机数
  • C#实现随机数产生类实例
  • C#生成不重复随机字符串类
  • C# 生成随机数的代码
  • C#生成随机数实例
  • C#取得随机颜色的方法
  • C#生成互不相同随机数的实现方法
  • C#实现在两个数字之间生成随机数的方法
  • c#求两个数中最大值的方法
  • c#获取相同概率随机数的算法代码

相关文章

  • 2017-05-28C#连接数据库和更新数据库的方法
  • 2017-05-28C#基础语法:可空类型详解
  • 2017-05-28C#往线程里传递参数的方法小结
  • 2017-05-28C#排序算法的比较分析
  • 2017-05-28在C#中创建和读取XML文件的实现方法
  • 2017-05-28C#将图片和字节流互相转换并显示到页面上
  • 2017-05-28分享WCF聊天程序--WCFChat实现代码
  • 2017-05-28基于C#实现的多生产者多消费者同步问题实例
  • 2017-05-28C#中实现网段扫描的代码
  • 2017-05-28使用C#获取系统特殊文件夹路径的解决方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 深入C#中使用SqlDbType.Xml类型参数的使用详解
    • C#控制台进行文件读写的方法
    • C#生成条形码图片的简单方法
    • C#学习基础概念二十五问第1/4页
    • C#绘制曲线图的方法
    • C# 数组实例介绍(图文)
    • c#获取光标在屏幕中位置的简单实例
    • C#实现DataTable转换成IList的方法
    • c# Base关键字的使用
    • C# 多态性的深入理解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有