产生随机数 Random / RNGCryptoServiceProvider
Random.Next 方法 (Int32, Int32)
参数
- minValue
- 类型:System.Int32
返回的随机数的下界(随机数可取该下界值)。
- maxValue
- 类型:System.Int32
返回的随机数的上界(随机数不能取该上界值)。 maxValue 必须大于或等于 minValue。
返回值
类型:System.Int32一个大于等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue。 如果 minValue 等于 maxValue,则返回 minValue。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Random_练习 { class Program { static void Main(string[] args) { Random rd = new Random(); for (int i = 0; i < 1000; i++) { int k = rd.Next(1, 101); Console.WriteLine(k); } Console.ReadKey(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace RNGCryptoServiceProvider_练习 { class Program { static void Main(string[] args) { //随机产生100个不重复的数(1-100) List<int> list = new List<int>(); while (list.Count<100) { int num = RollDice(100); if (!list.Contains(num)) { list.Add(num); } } foreach (int item in list) { Console.WriteLine(item); } Console.WriteLine("=========" + list.Count + "========="); Console.ReadKey(); } /// <summary> /// 产生随机数 /// </summary> /// <param name="NumSides"></param> /// <returns></returns> public static int RollDice(int NumSides) { byte[] randomNumber = new byte[1]; RNGCryptoServiceProvider Gen = new RNGCryptoServiceProvider(); //用一个随机值填充数组。 Gen.GetBytes(randomNumber); //将字节转换为一个整数值,使模量操作更容易 int rand = Convert.ToInt32(randomNumber[0]); return rand % NumSides + 1; } } }