C#中Random.Next 方法

目录

一、重载

二、Next()

1.定义

2.示例

三、Next(Int32)

1.定义 

2.示例1

3.示例2

四、Next(Int32, Int32)

1.定义

2.示例1

3.示例2


一、重载

        返回一个随机整数。

Next()返回一个非负随机整数。
Next(Int32)返回一个小于所指定最大值的非负随机整数。
Next(Int32, Int32)返回在指定范围内的任意整数。

二、Next()

        返回一个非负随机整数。

1.定义

public virtual int Next ();返回
Int32
大于或等于 0 且小于 Int32.MaxValue 的 32 位有符号整数。

2.示例

//Next()
namespace ConsoleApp39
{internal class Program{private static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);Random rnd = new();Console.WriteLine("Generating 10 random numbers:");for (uint i = 1; i <= 10; i++)Console.WriteLine($"{rnd.Next(),15:N0}");}}
}// 运行结果:
/*Generating 10 random numbers:1,346,240,124723,453,9141,735,589,4491,860,966,1121,562,174,73922,804,240576,594,2101,204,251,9091,436,476,117828,029,130*/

        Random.Next 生成一个随机数,其值范围为 0 到小于 Int32.MaxValue。 若要生成值范围为 0 到某个其他正数的随机数,请使用 Random.Next(Int32) 方法重载。 若要在不同的范围内生成随机数,请使用 Random.Next(Int32, Int32) 方法重载。

三、Next(Int32)

        返回一个小于所指定最大值的非负随机整数。

1.定义 

public virtual int Next (int maxValue);参数
maxValue
Int32
要生成的随机数的上限(随机数不能取该上限值)。 maxValue 必须大于或等于 0。返回
Int32
大于或等于零且小于 maxValue 的 32 位有符号整数,即:返回值的范围通常包括零但不包括 maxValue。 但是,如果 maxValue 等于 0,则返回 0。例外
ArgumentOutOfRangeException
maxValue 小于 0。

2.示例1

// Next(Int32)
namespace ConsoleApp40
{internal class Program{private static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);Console.WriteLine("This example of the Random.Next() methods\n" +"generates the following output.\n");Console.WriteLine("Create Random objects all with the same seed and " +"generate\nsequences of numbers with different " +"bounds. Note the effect\nthat the various " +"combinations of bounds have on the sequences.");NoBoundsRandoms(234);UpperBoundRandoms(234, int.MaxValue);UpperBoundRandoms(234, 2000000000);UpperBoundRandoms(234, 200000000);BothBoundsRandoms(234, 0, int.MaxValue);BothBoundsRandoms(234, int.MinValue, int.MaxValue);BothBoundsRandoms(234, -2000000000, 2000000000);BothBoundsRandoms(234, -200000000, 200000000);BothBoundsRandoms(234, -2000, 2000);// Generate random numbers with no bounds specified.void NoBoundsRandoms(int seed){Console.WriteLine("\nRandom object, seed = {0}, no bounds:", seed);Random randObj = new(seed);// Generate six random integers from 0 to int.MaxValue.for (int j = 0; j < 6; j++)Console.Write("{0,11} ", randObj.Next());Console.WriteLine();}// Generate random numbers with an upper bound specified.void UpperBoundRandoms(int seed, int upper){Console.WriteLine("\nRandom object, seed = {0}, upper bound = {1}:",seed, upper);Random randObj = new(seed);// Generate six random integers from 0 to the upper bound.for (int j = 0; j < 6; j++)Console.Write("{0,11} ", randObj.Next(upper));Console.WriteLine();}// Generate random numbers with both bounds specified.void BothBoundsRandoms(int seed, int lower, int upper){Console.WriteLine("\nRandom object, seed = {0}, lower = {1}, " +"upper = {2}:", seed, lower, upper);Random randObj = new(seed);// Generate six random integers from the lower to// upper bounds.for (int j = 0; j < 6; j++)Console.Write("{0,11} ",randObj.Next(lower, upper));Console.WriteLine();}}}
}/*
This example of the Random.Next() methods
generates the following output.Create Random objects all with the same seed and generate
sequences of numbers with different bounds. Note the effect
that the various combinations of bounds have on the sequences.Random object, seed = 234, no bounds:
2091148258  1024955023   711273344  1081917183  1833298756   109460588Random object, seed = 234, upper bound = 2147483647:
2091148258  1024955023   711273344  1081917183  1833298756   109460588Random object, seed = 234, upper bound = 2000000000:
1947533580   954563751   662424922  1007613896  1707392518   101943116Random object, seed = 234, upper bound = 200000000:
194753358    95456375    66242492   100761389   170739251    10194311Random object, seed = 234, lower = 0, upper = 2147483647:
2091148258  1024955023   711273344  1081917183  1833298756   109460588Random object, seed = 234, lower = -2147483648, upper = 2147483647:
2034812868   -97573602  -724936960    16350718  1519113864 -1928562472Random object, seed = 234, lower = -2000000000, upper = 2000000000:
1895067160   -90872498  -675150156    15227793  1414785036 -1796113767Random object, seed = 234, lower = -200000000, upper = 200000000:
189506716    -9087250   -67515016     1522779   141478503  -179611377Random object, seed = 234, lower = -2000, upper = 2000:1895         -91        -676          15        1414       -1797
*/

3.示例2

        生成一个随机整数,该整数用作索引从数组中检索字符串值。 由于数组的最高索引小于其长度的 1,因此 属性的值 Array.Length 作为 maxValue 参数提供。

// Next(Int32)
namespace ConsoleApp41
{internal class Program{private static void Main(string[] args){Random rnd = new();string[] malePetNames = [ "Rufus", "Bear", "Dakota", "Fido","Vanya", "Samuel", "Koani", "Volodya","Prince", "Yiska" ];string[] femalePetNames = [ "Maggie", "Penny", "Saya", "Princess","Abby", "Laila", "Sadie", "Olivia","Starlight", "Talla" ];// Generate random indexes for pet names.int mIndex = rnd.Next(malePetNames.Length);int fIndex = rnd.Next(femalePetNames.Length);// Display the result.Console.WriteLine("Suggested pet name of the day: ");Console.WriteLine("   For a male:     {0}", malePetNames[mIndex]);Console.WriteLine("   For a female:   {0}", femalePetNames[fIndex]);}}
}// 运行结果:
/*
Suggested pet name of the day:For a male:     SamuelFor a female:   Abby
*/

四、Next(Int32, Int32)

        返回在指定范围内的任意整数。

1.定义

public virtual int Next (int minValue, int maxValue);参数
minValue
Int32
返回的随机数的下界(随机数可取该下界值)。maxValue
Int32
返回的随机数的上界(随机数不能取该上界值)。 maxValue 必须大于或等于 minValue。返回
Int32
一个大于等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue。 如果 minValue 等于 maxValue,则返回 minValue。例外
ArgumentOutOfRangeException
minValue 大于 maxValue。

        重载 Next(Int32, Int32) 返回范围从 minValue 到 maxValue - 1 的随机整数。 但是,如果 maxValue 等于 minValue,则 方法返回 minValue。与仅返回非负值的方法的其他重载 Next 不同,此方法可以返回负随机整数。 

2.示例1

        使用 Random.Next(Int32, Int32) 方法生成具有三个不同范围的随机整数。 请注意,此示例的确切输出取决于传递给 Random 类构造函数的系统提供的种子值。

// Next(Int32, Int32)
namespace ConsoleApp42
{internal class Program{private static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);Random rnd = new();Console.WriteLine("\n20 random integers from -100 to 100:");for (int ctr = 1; ctr <= 20; ctr++){Console.Write("{0,6}", rnd.Next(-100, 101));if (ctr % 5 == 0) Console.WriteLine();}Console.WriteLine("\n20 random integers from 1000 to 10000:");for (int ctr = 1; ctr <= 20; ctr++){Console.Write("{0,8}", rnd.Next(1000, 10001));if (ctr % 5 == 0) Console.WriteLine();}Console.WriteLine("\n20 random integers from 1 to 10:");for (int ctr = 1; ctr <= 20; ctr++){Console.Write("{0,6}", rnd.Next(1, 11));if (ctr % 5 == 0) Console.WriteLine();}}}
}// 运行结果:
/*
20 random integers from -100 to 100:-78   -13    58   -11    80-49    -5   -57    81   -4469    28   -63   -23    6596   -20   -37    76    1820 random integers from 1000 to 10000:3738    6382    4790    2334    18756557    6491    2583    2012    66015929    4639    7814    3045    17375512    4275    8866    2288    720120 random integers from 1 to 10:4     7     1     5     72     7     6     3     410     6     3     3     71     3     1    10     6*/

3.示例2

        使用 Random.Next(Int32, Int32) 方法生成具有三个不同范围的随机整数。 请注意,此示例的确切输出取决于传递给 Random 类构造函数的系统提供的种子值。

// Next(Int32, Int32)
namespace ConsoleApp43
{internal class Program{private static void Main(string[] args){Random rnd = new();string[] malePetNames = [ "Rufus", "Bear", "Dakota", "Fido","Vanya", "Samuel", "Koani", "Volodya","Prince", "Yiska" ];string[] femalePetNames = [ "Maggie", "Penny", "Saya", "Princess","Abby", "Laila", "Sadie", "Olivia","Starlight", "Talla" ];// Generate random indexes for pet names.int mIndex = rnd.Next(0, malePetNames.Length);int fIndex = rnd.Next(0, femalePetNames.Length);// Display the result.Console.WriteLine("Suggested pet name of the day: ");Console.WriteLine("   For a male:     {0}", malePetNames[mIndex]);Console.WriteLine("   For a female:   {0}", femalePetNames[fIndex]);}}
}// 运行结果:
/*
Suggested pet name of the day:For a male:     SamuelFor a female:   Penny*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jetbrains ai assistant激活成功了

使用ai assistant插件助手 很完美&#xff0c;第一次用在idea 开发工具就完美的把激活了&#xff0c;你也不妨试试 链接地址&#xff1a;https://web.52shizhan.cn 激活后如下 登录页面 完美使用

Linux 文件和文本内容

本篇主要分两类&#xff0c;一类是vim 这种交互式的文本编辑软件&#xff0c;另外就是各种花式的文本处理命令&#xff0c;有 awk、sed 这种强大的命令&#xff0c;也有简单的重定向和echo打印&#xff0c;指在提升文本处理效率&#xff0c;建议试试&#xff0c;来增强记忆 一、…

python设计模式有哪几种

Python 中常见的设计模式有以下几种 一 单例模式&#xff08;Singleton Pattern&#xff09;&#xff1a;确保一个类只有一个实例&#xff0c;并提供全局访问点。 二 工厂模式&#xff08;Factory Pattern&#xff09;&#xff1a;使用工厂方法来创建对象&#xff0c;而不是直…

c++算法之枚举

目录 解空间的类型 循环枚举解空间 例题 特别数的和 输入格式 输出格式 输入样例&#xff1a; 输出样例&#xff1a; 解 例题 反倍数 问题描述 输入格式 输出格式 样例输入 样例输出 解 例题 找到最多的数 解 枚举算法是一种基本的算法思想&#xff0c;它通过…

《设计模式的艺术》笔记 - 单例模式

介绍 单例模式优点是可以确保系统中只存在单个对象实例&#xff0c;缺点是不便扩展&#xff0c;一定程度上违背单一原则&#xff0c;既提供业务方法&#xff0c;又提供创建对象方法 饿汉式单例 在类加载的时候就创建好对象&#xff0c;获取对象时直接返回即可 class EagerSin…

喜报 | 联诚发斩获卓越品牌奖,总裁龙平芳荣获优秀企业家奖

1月10日&#xff0c;深圳市半导体产业发展促进会五届三次会员大会暨五届四次理/监事会在深圳宝安登喜路国际大酒店隆重举行&#xff0c;全体会员、党员、兄弟商协会等共600多位代表出席会议。联诚发LCF作为协会会长单位也受邀出席盛会。 本次大会颁布了卓越品牌奖、优秀企业奖、…

79LXX 三端负电源电压调节器,具有一系列固定电压输出,适用于小于100mA电源供给的场合

79LXX系列三端负电源电压调节器是单片双极型线性集成电路&#xff0c;采用TO92、SOT89-3的封装形式封装&#xff0c;有一系列固定的电压输出&#xff0c;适用于小于100mA电源供给的场合。 主要特点&#xff1a; 最大输出电流为100mA 固定输出电压分别为-5V、-6V、-8V、-9V、-1…

QT第三天

使用QT完成水果计价界面和功能&#xff0c;如下图&#xff1a; 运行结果&#xff1a; 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QListWidgetItem>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_N…

redis复习总结

我的redis 1. redis集群 主从集群【哨兵集群】&#xff1a;主从集群是指中&#xff0c;存在一个master节点和多个slave节点。master节点负责接收客户端的读写&#xff0c;slave节点负责读操作。主节点一旦接收到数据的变更&#xff0c;就会将数据同步至slave节点。 但这样的…

用TF-IDF处理文本数据

计算机擅长处理数字&#xff0c;但不擅长处理文本数据&#xff0c;TF-IDF是处理文本数据最广泛使用的技术之一&#xff0c;本文对它的工作原理以及它的特性进行介绍。 根据直觉&#xff0c;我们认为在文本数据分析中出现频率更高的单词应该具有更大的权重&#xff0c;但事实并…

机器人技能学习-构建自己的数据集并进行训练

概要 若想训练自己的场景&#xff0c;数据集的重要性不做过多赘述&#xff0c;下面就基于 robomimic 和 robosuite 构建自己的数据集进行讲解&#xff0c;同时&#xff0c;也会附上 train 和 run 的流程&#xff0c;这样&#xff0c;就形成了闭环。 自建数据集 采集数据 采…

【MATLAB】REMD_LSTM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 REMD-LSTM神经网络时序预测算法是一种结合了REMD&#xff08;Reservoir Enhanced Multi-scale Deep Learning&#xff09;算法和长短期记忆神经网络&#xff08;LSTM&#xff09;的时间序…

解决“Ubuntu系统与windows系统之间不能执行复制粘贴”之问题

在win11中&#xff0c;发现“Ubuntu系统与windows系统之间不能互相复制粘贴”&#xff0c;只能通过“FPT客户端FileZilla”才能交换文件&#xff0c;但遇到字符串&#xff0c;就没法实现了&#xff0c;因此&#xff0c;在两个系统之间实现互相复制和粘贴字符串&#xff0c;就很…

【Python数据可视化】matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图

文章传送门 Python 数据可视化matplotlib之绘制常用图形&#xff1a;折线图、柱状图&#xff08;条形图&#xff09;、饼图和直方图matplotlib之设置坐标&#xff1a;添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

RK3568驱动指南|第十二篇 GPIO子系统-v

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

Java医院智能3D导诊系统源码 微信小程序源码

医院智慧3D导诊系统&#xff0c; 通过输入疾病症状和选择部位进行导诊挂号&#xff0c;支持小程序端、APP端 开发背景 人们经常去医院因为不知道挂什么科而烦恼&#xff0c;有些病人不方便问又不好意思问。在互联网医院中挂号且又不知该挂什么科&#xff0c;找什么类型的医生&…

JavaScript的变量详解

一、变量的声明和赋值 编程中的程序其本质就是处理数据的过程&#xff0c;当输入指令时&#xff0c;就可以输出相应的内容&#xff0c;在输入和输出之间就是处理数据的过程。处理的数据可能有多种&#xff0c;多个&#xff0c;这时就需要使用不同的名字来存储、区分和提取不同的…

rime中州韵小狼毫 LaTex输入法配置

本文的分享一种在rime中州韵小狼毫须鼠管输入法中配置LaTex输入方案的方法&#xff0c;并不完美&#xff0c;仅供参考。 先睹为快 LaTex输入方案可以快捷的在公式模式下输入一些基础的数学公式&#xff0c;选词快捷&#xff0c;录入体验优良。 latex.schema.yaml latex.sc…

PMP学习考试经验总结

PMP备考日程计划表 我的PMP的备考大概花了三个月的时间, 可以分为以下几个阶段&#xff1a; Week 1-4: 读完PMBoK 前面7个知识领域&#xff08;中英文版PMBoK一起看&#xff09;。每看完一个知识领域&#xff0c;就看参考书里面的相应章节&#xff08;汪博士那本&#xff09;…

openssl3.2 - 官方demo学习 - cms - cms_uncomp.c(官方应用实现错误, 需要修正)

文章目录 openssl3.2 - 官方demo学习 - cms - cms_uncomp.c(官方应用实现错误, 需要修正)概述笔记END openssl3.2 - 官方demo学习 - cms - cms_uncomp.c(官方应用实现错误, 需要修正) 概述 cms数据解压缩 请注意函数定义 CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, B…