C# 随机数生成:random()与Math.random()用法解析

5星 · 超过95%的资源 需积分: 50 13 下载量 94 浏览量 更新于2024-09-14 1 收藏 5KB TXT 举报
"C#随机函数random()典型用法集锦" C#中的`random()`函数是生成随机数的重要工具,通常用于各种需要不确定数值的场景,如模拟、游戏编程、测试等。`Random`类是C#提供的内置类型,提供了多种生成随机数的方法。 1. `Random.Next()`方法: 这个方法可以生成一个指定范围内的整数。如果没有提供参数,它将返回0到int.MaxValue-1之间的随机数。如果提供一个整数参数n,它会返回0(包括)到n-1(不包括)之间的随机数。例如: ```csharp Random random = new Random(); int randomNumber = random.Next(); // 0 到 int.MaxValue - 1 int numberInRange = random.Next(5); // 0 到 4 ``` 2. `Random.Next(Int32, Int32)`方法: 此方法允许你指定一个范围,返回的是从第一个参数n(包含)到第二个参数m(不包含)之间的随机数。例如: ```csharp int randomBetweenNumbers = random.Next(1, 10); // 1 到 9 ``` 3. 生成0到1之间的浮点数: C#没有直接的`random()`函数来生成0到1之间的浮点数,但可以使用`Random.NextDouble()`来实现,它会返回0.0到1.0(不包括1.0)之间的一个双精度浮点数。例如: ```csharp double randomDouble = random.NextDouble(); // 0.0 到 1.0 ``` 4. 自定义随机数生成策略: - 生成指定长度的小数:在给定的n位小数和m位整数部分的情况下,可以使用数学运算来生成。例如,`randomXiao(3, 2)`生成2位整数和3位小数的随机数。 ```csharp double customRandom = (double)random.Next(1000) / 100; // 生成0.00到9.99的随机数 ``` - 生成指定范围的整数:`randomNm(n, m)`函数可以确保在n到m(包括n和m)之间生成随机整数,处理了边界条件。 ```csharp int randomInRange = randomNm(1, 10); // 生成1到10之间的随机整数 ``` - 生成ASCII字符:通过`randomAscii()`函数,可以生成ASCII码对应的字符,适用于生成随机文本字符串。 ```csharp char randomChar = (char)random.Next(32, 127); // 生成32(空格)到126(~)的ASCII字符 ``` 以上就是C#中`Random`类的一些典型用法,可以根据实际需求灵活选择和组合这些方法,以生成满足特定条件的随机数。在进行性能关键的随机数生成时,还应注意实例化`Random`对象的时机,避免在多线程环境中多次实例化导致的序列化问题。