一、简介

Random用于创建随机数。(当然是伪随机的。)

二、Random用法

例:

Random rnd = new Random();
int month = rnd.Next(1, 13); // 创建一个数字是1~12的之间的
int dice = rnd.Next(1, 7); // 创建一个数字是1~6之间的
int card = rnd.Next(52); // 创建一个数字是0~51之间的

三、方法详细说明

Random 类中提供的 Next、NextBytes 以及 NextDouble 方法可以生成整数类型、byte 数组类型以及双精度浮点型的随机数,详细说明如下表所示。

  • Next():每次产生一个不同的随机正整数
  • Next(int max Value):产生一个比max value 小的整数
  • Next(int min Value,int max Value):产生一个 minValue~maxValue 的正整数,但不包含 maxValue
  • NextDouble():产生一个0.0~1.0的浮点数
  • NextBytes(byte[] buffer):用随机数填充指定字节数的数组

四、Random方法的使用

【实例】分别使用 Next、NextDouble 以及 NextBytes 方法生成随机数。

class Program
{
static void Main(string[] args)
{
//分别使用Net、NetDouble已经NextByets方法生成随机数
Random rd = new Random();
int numberone = rd.Next(0, 10);
Console.WriteLine("产生一个10以内的数:{0}",numberone);
//浮点数
double numbertwo = rd.NextDouble();
Console.WriteLine("产生一个0到1之间浮点数:{0}",numbertwo);
//数组
byte[] b = new byte[5];
rd.NextBytes(b);
Console.WriteLine("产生的byte类型值为:");
foreach (byte i in b)
{
Console.Write(i + " ");
}
Console.WriteLine();
Console.ReadKey();
}
}  

输出结果,如图所示:

【实例】输入名字随机显示这个人上辈子是什么样的人

  class Program
{
static void Main(string[] args)
{ //随机数
Random rd = new Random();
while (true)
{
int number = rd.Next(1, 6);
Console.WriteLine("请输入你的名字");
string name = Console.ReadLine();
if (name=="")
{
Console.WriteLine("名字不能为空,请重新输入你的名字");
name = Console.ReadLine();
}
switch (number)
{
case 1:
Console.WriteLine("{0}的上辈子是皇帝", name);
break;
case 2:
Console.WriteLine("{0}的上辈子是皇后", name);
break;
case 3:
Console.WriteLine("{0}的上辈子是贵妃", name);
break;
case 4:
Console.WriteLine("{0}的上辈子是秀才", name);
break;
case 5:
Console.WriteLine("{0}的上辈子是驸马", name);
break;
}
Console.ReadKey();
}
}
}

输出结果,如图所示:

C# Random的更多相关文章

  1. Chrome V8引擎系列随笔 (1):Math.Random()函数概览

    先让大家来看一幅图,这幅图是V8引擎4.7版本和4.9版本Math.Random()函数的值的分布图,我可以这么理解 .从下图中,也许你会认为这是个二维码?其实这幅图告诉我们一个道理,第二张图的点的分 ...

  2. Math.random()

    Math.random() 日期时间函数(需要用变量调用):var b = new Date(); //获取当前时间b.getTime() //获取时间戳b.getFullYear() //获取年份b ...

  3. .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数

    .Net中我们通常使用Random类生成随机数,在一些场景下,我却发现Random生成的随机数并不可靠,在下面的例子中我们通过循环随机生成10个随机数: ; i < ; i++) { Rando ...

  4. 随机数(random)

    需求 Random rd=new Random(); 需要十以内的随机数  (0---10) System.out.println((int)((rd.nextDouble()*100)/10)); ...

  5. python写红包的原理流程包含random,lambda其中的使用和见简单介绍

    Python写红包的原理流程 首先来说说要用到的知识点,第一个要说的是扩展包random,random模块一般用来生成一个随机数 今天要用到ramdom中unifrom的方法用于生成一个指定范围的随机 ...

  6. [LeetCode] Random Pick Index 随机拾取序列

    Given an array of integers with possible duplicates, randomly output the index of a given target num ...

  7. [LeetCode] Linked List Random Node 链表随机节点

    Given a singly linked list, return a random node's value from the linked list. Each node must have t ...

  8. [LeetCode] Copy List with Random Pointer 拷贝带有随机指针的链表

    A linked list is given such that each node contains an additional random pointer which could point t ...

  9. php对应js math.random

    <?php function random($min = 0, $max = 1) {     return $min + mt_rand()/mt_getrandmax()*($max-$mi ...

  10. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

随机推荐

  1. Flask--请求扩展

    目录 请求扩展 before_request after_request before_first_request teardown_request errorhandler template_glo ...

  2. Implement Dependent Reference Properties实现依赖引用属性 (EF)

    In this lesson, you will learn how to implement properties whose values can depend on other properti ...

  3. layui 集成第三方和自定义组件到模块规范

    1.新建一个layui.extend.js文件,页面调用时这个文件放到layui.js后面. 2.基础的配置卸载config中,扩展的组件写入extend,组件的路径是相对于config下base的路 ...

  4. ES6数组及对象遍历的新增方法 entries(),keys() 和 values()

    ES6 提供三个新的方法——entries(),keys()和values()——用于遍历数组.它们都返回一个遍历器对象(详见<Iterator>一章),可以用for...of循环进行遍历 ...

  5. 使用 gitlab 进行代码管理

    这里使用 gitlab 做服务器, 客户端主要使用 git extensions. ============================= gitlab 项目成员类型: ============= ...

  6. Springboot中定时器的简单使用

    在定时器的类上添加注解: @Component@EnableAsync@EnableScheduling 一.普通的定时器: 每天15:10执行的定时器 @Scheduled(cron="0 ...

  7. emacs speedbar功能介绍

    emacs speedbar功能介绍 speedbar启动命令M-x speedbar,效果如下: speedbar是一个frame,它会遮挡你工作中的buffer.鼠标左键点击,或者敲回车,都会自动 ...

  8. wsl笔记

    目录 环境 修改更新源 新建用户 设置超级用户 环境变量 zsh美化终端 设zsh为默认shell 环境变量PATH 开启 ssh 远程连接 apt命令与问题 windows 和 wsl 互相访问文件 ...

  9. Java面试之synchronized 和 static synchronized

    ​面试题: 答案: 不能 不能 不能 不能 能 正文 概述 通过分析这两个用法的分析,我们可以理解java中锁的概念.一个是实例锁(锁在某一个实例对象上,如果该类是单例,那么该锁也具有全局锁的概念), ...

  10. jmeter BeanShell的几种使用方式

    jmeter的BeanShell Sampler,可以直接引用java代码,有下面3种方式: 1.直接输入java代码:2.导入java文件:3.导入class文件 BeanShell脚本访问变量主要 ...