عدد تصادفی ، کلاس Random در کتابخانه ی کلاس .NET قابلیت تولید اعداد تصادفی در سی شارپ را فراهم میکند. انتخاب یک رشته ی تصادفی و آرایه ای از رشته ها را شرح میدهد.
این مقاله نحوه ی نحوه ی ایجاد یک عدد صحیح تصادفی و رشته های تصادفی درسی شارپ و .NET Core با استفاده از کلاس Random را شرح میدهد.
عدد تصادفی چیست ؟
عددی که دنباله مشخصی ندارد و با دامنه داده شده در تابع Random به صورت پویا تغییر پیدا کرده و هر لحظه تولید می شود را عدد Random می گویند.
شکل ۱ مثالی از یک عدد تصادفی و رشته ی تصادفی است.
شکل ۱
سازنده های کلاس Random دو حالت سربارگذاری شده دارند. یا هیچ مقداری نمیگیرد یا یک مقدار هسته میگیرد.
کلاس Random سه متد عمومی (public) دارد – Next، NextBytes، و NextDouble. متد Next یک عدد تصادفی برمیگرداند، NextBytes یک آرایه از بایت ها پر شده با اعداد تصادفی برمیگرداند، و NextDouble یک عدد تصادفی بین ۰.۰ و ۱.۰ برمیگرداند.
تولید یک عدد صحیح Random
کد زیر در فهرست ۱ یک عدد تصادفی برمیگرداند.
// Generate a random number Random random = new Random(); // Any random integer int num = random.Next();
فهرست ۱
تولید عدد تصادفی کوچکتر از یک عدد
متد Next سه حالت سربارگذاری شده دارد و به شما این امکان را میدهد که بازه ی حداقلی و حداکثری عدد تصادفی را تنظیم کنید.
با فرستادن یک تک مقدار حداکثری به متد Next، متد یک عدد تصادفی کوچکتر از مقدار حداکثر ارسال شده در متد تولید میکند. قطعه کد زیر در فهرست ۲ یک عدد تصادفی که کوچکتر از ۱۰۰ است برمیگرداند.
// A random number below 100 int randomLessThan100 = random.Next(100); Console.WriteLine(randomLessThan100);
فهرست ۲
تولید عددی تصادفی در یک بازه
متد Nextز کلاس Random یک مقدار حداقلی و حداکثری گرفته و یک عدد تصادفی بین دو مقدار تولید میکند.
قطعه کد زیر در فهرست ۳ یک عدد تصادفی بین اعداد ۱۰۰ و ۵۰۰ برمیگرداند.
// A random number within a range int randomBetween100And500 = random.Next(100, 500); Console.WriteLine(randomBetween100And500);
فهرست ۳
نحوهی تولید یک رشتهی تصادفی
قطعه کد زیر در فهرست ۴ یک رشتهی تصادفی با اندازه ی داده شده تولید میکند.
پارامتر دوم متد RandomString برای تنظیم اینکه رشته با حروف کوچک است یا خیر استفاده میشود.
// Generate a random string with a given size and case. // If second parameter is true, the return string is lowercase public string RandomString(int size, bool lowerCase) { StringBuilder builder = new StringBuilder(); Random random = new Random(); char ch; for (int i = 0; i < size; i++) { ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))); builder.Append(ch); } if (lowerCase) return builder.ToString().ToLower(); return builder.ToString(); }
فهرست ۴
کد متد زیر در فهرست ۵ عددی تصادفی در یک بازه تولید میکند.
// Generate a random number between two numbers public int RandomNumber(int min, int max) { Random random = new Random(); return random.Next(min, max); }
فهرست ۵
ایجاد یک رمز عبور تصادفی ترکیبی از رشتهها و اعداد
شما حتی میتوانید دو متد – RandomNumber و RandomString را برای تولید ترکیبی از رشته و اعدا تصادفی ترکیب کنید.
قطعه کد زیر در فهرست ۶ یک رمز عبور بطول ۱۰ با ۴ حرف اول بصورت حروف کوچک، ۴ حرف بعدی بصورت عدد، و ۲ حرف آخر بصورت حروف بزرگ تولید میکند.
// Generate a random password of a given length (optional) public string RandomPassword(int size = 0) { StringBuilder builder = new StringBuilder(); builder.Append(RandomString(4, true)); builder.Append(RandomNumber(1000, 9999)); builder.Append(RandomString(2, false)); return builder.ToString(); }
فهرست ۶
تمامی قابلیت های بالا اینجا در فهرست ۷ آورده شده اند. یک برنامه ی کنسولی .NET Core در ویژوال استودیو ایجاد کرده و این کد را استفاده کنید.
using System; using System.Text; class RandomNumberSample { static void Main(string[] args) { // Generate a random number Random random = new Random(); // Any random integer int num = random.Next(); // A random number below 100 int randomLessThan100 = random.Next(100); Console.WriteLine(randomLessThan100); // A random number within a range int randomBetween100And500 = random.Next(100, 500); Console.WriteLine(randomBetween100And500); // Use other methods RandomNumberGenerator generator = new RandomNumberGenerator(); int rand = generator.RandomNumber(5, 100); Console.WriteLine($"Random number between 5 and 100 is {rand}"); string str = generator.RandomString(10, false); Console.WriteLine($"Random string of 10 chars is {str}"); string pass = generator.RandomPassword(); Console.WriteLine($"Random password {pass}"); Console.ReadKey(); } } public class RandomNumberGenerator { // Generate a random number between two numbers public int RandomNumber(int min, int max) { Random random = new Random(); return random.Next(min, max); } // Generate a random string with a given size and case. // If second parameter is true, the return string is lowercase public string RandomString(int size, bool lowerCase) { StringBuilder builder = new StringBuilder(); Random random = new Random(); char ch; for (int i = 0; i < size; i++) { ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))); builder.Append(ch); } if (lowerCase) return builder.ToString().ToLower(); return builder.ToString(); } // Generate a random password of a given length (optional) public string RandomPassword(int size = 0) { StringBuilder builder = new StringBuilder(); builder.Append(RandomString(4, true)); builder.Append(RandomNumber(1000, 9999)); builder.Append(RandomString(2, false)); return builder.ToString(); } }
فهرست ۷
رشته ی تصادفی و رمز عبور تصادفی بصورت شکل ۲ هستند.
شکل ۲
نحوه ی انتخاب یک رشته ی تصادفی از آرایهای از رشته ها
میتوانیم از تولید کننده ی عدد تصادفی برای انتخاب یک آیتم تصادفی از یک آرایه استفاده کنیم.
قطعه کد زیر دارای آرایه ای از نام نویسندگان (رشته ها) است.
میتوانیم یک نویسنده ی تصادفی از طریق تولید یک عدد تصادفی که کوچکتر از تعداد آیتم های موجود در آرایه است انتخاب کرده و از اندیس تصادفی برای انتخاب یک نام نویسنده تصادفی در رشته استفاده کنیم.
متد Random.Next یک عدد صحیح تصادفی تولید کرده و از طریق ارسال حداکثر طول آرایه این موضوع را میرساند که عدد تصادفی نمیتواند بزرگتر از تعداد آیتم های موجود در آرایه باشد.
فهرست ۸ را ببینید.
using System; public class RandomStringInArraySample { public static void Main() { // A array of authors string[] authors = { "Mahesh Chand", "Jeff Prosise", "Dave McCarter", "Allen O'neill", "Monica Rathbun", "Henry He", "Raj Kumar", "Mark Prime", "Rose Tracey", "Mike Crown" }; // Create a Random object Random rand = new Random(); // Generate a random index less than the size of the array. int index = rand.Next(authors.Length); // Display the result. Console.WriteLine($"Randomly selected author is {authors[index]}"); Console.ReadKey(); } }
جمع بندی
در این آموزش، نحوه ی تولید اعداد تصادفی، رشته های تصادفی، و رمز عبورهای تصادفی در سی شارپ و .NET Core را مورد بحث قرار دادیم.
همچنین نحوه ی انتخاب یک آیتم از یک آرایه بصورت تصادفی را مشاهده کردیم.
نحوه ی تولید یک رمز عبور تصادفی درسی شارپ و .NET Core
یک رمز عبور تصادفی ترکیبی از کاراکترها، اعداد، و کاراکترهای خاص است.
میتوانیم یک رمز عبور تصادفی از طریق ترکیب اعداد تصادفی و رشته های تصادفی تولید کنیم.
قطعه کد موجود در این مقاله مثالی از نحوه ی تولید اعداد تصادفی و و رشته های تصادفی و ترکیب آنها برای ایجاد یک رمز عبور تصادفی با استفاده از سی شارپ و .NET Core است.
سازنده های کلاس Random دو حالت سربارگذاری شده دارند.
یا هیچ مقداری نمیگیرد یا یک مقدار هسته میگیرد.
کلاس Random سه متد عمومی (public) دارد – Next، NextBytes، و NextDouble. متد Next یک عدد تصادفی برمیگرداند، NextBytes یک آرایه از بایت ها پر شده با اعداد تصادفی برمیگرداند، و NextDouble یک عدد تصادفی بین ۰.۰ و ۱.۰ برمیگرداند.
تولید یک عدد تصادفی
کد زیر در فهرست ۱ یک عدد تصادفی برمیگرداند.
// Generate a random number Random random = new Random(); // Any random integer int num = random.Next();
فهرست ۱
نحوهی تولید یک رشتهی تصادفی
قطعه کد زیر در فهرست ۴ یک رشتهی تصادفی با اندازه ی داده شده تولید میکند.
پارامتر دوم متد RandomString برای تنظیم اینکه رشته با حروف کوچک است یا خیر استفاده میشود.
// Generate a random string with a given size and case. // If second parameter is true, the return string is lowercase public string RandomString(int size, bool lowerCase) { StringBuilder builder = new StringBuilder(); Random random = new Random(); char ch; for (int i = 0; i < size; i++) { ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))); builder.Append(ch); } if (lowerCase) return builder.ToString().ToLower(); return builder.ToString(); }
فهرست ۴
ایجاد یک رمز عبور تصادفی ترکیبی از رشتهها و اعداد
شما حتی میتوانید دو متد – RandomNumber و RandomString را برای تولید ترکیبی از رشته و اعدا تصادفی ترکیب کنید.
قطعه کد زیر در فهرست ۶ یک رمز عبور بطول ۱۰ با ۴ حرف اول بصورت حروف کوچک، ۴ حرف بعدی بصورت عدد، و ۲ حرف آخر بصورت حروف بزرگ تولید میکند.
// Generate a random password of a given length (optional) public string RandomPassword(int size = 0) { StringBuilder builder = new StringBuilder(); builder.Append(RandomString(4, true)); builder.Append(RandomNumber(1000, 9999)); builder.Append(RandomString(2, false)); return builder.ToString(); }
فهرست ۶
تمامی قابلیت های بالا اینجا در فهرست ۷ آورده شده اند. یک برنامه ی کنسولی .NET Core در ویژوال استودیو ایجاد کرده و این کد را استفاده کنید.
using System; using System.Text; class RandomNumberSample { static void Main(string[] args) { // Generate a random number Random random = new Random(); // Any random integer int num = random.Next(); // A random number below 100 int randomLessThan100 = random.Next(100); Console.WriteLine(randomLessThan100); // A random number within a range int randomBetween100And500 = random.Next(100, 500); Console.WriteLine(randomBetween100And500); // Use other methods RandomNumberGenerator generator = new RandomNumberGenerator(); int rand = generator.RandomNumber(5, 100); Console.WriteLine($"Random number between 5 and 100 is {rand}"); string str = generator.RandomString(10, false); Console.WriteLine($"Random string of 10 chars is {str}"); string pass = generator.RandomPassword(); Console.WriteLine($"Random password {pass}"); Console.ReadKey(); } } public class RandomNumberGenerator { // Generate a random number between two numbers public int RandomNumber(int min, int max) { Random random = new Random(); return random.Next(min, max); } // Generate a random string with a given size and case. // If second parameter is true, the return string is lowercase public string RandomString(int size, bool lowerCase) { StringBuilder builder = new StringBuilder(); Random random = new Random(); char ch; for (int i = 0; i < size; i++) { ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))); builder.Append(ch); } if (lowerCase) return builder.ToString().ToLower(); return builder.ToString(); } // Generate a random password of a given length (optional) public string RandomPassword(int size = 0) { StringBuilder builder = new StringBuilder(); builder.Append(RandomString(4, true)); builder.Append(RandomNumber(1000, 9999)); builder.Append(RandomString(2, false)); return builder.ToString(); } }
فهرست ۷
رشته ی تصادفی و رمز عبور تصادفی بصورت شکل ۲ هستند.
هیچ دیدگاهی نوشته نشده است.