عدد تصادفی در سی شارپ و .NET Core

عدد تصادفی ، کلاس Random در کتابخانه‏ ی کلاس .NET قابلیت تولید اعداد تصادفی در سی شارپ را فراهم می‏کند. انتخاب یک رشته ‏ی تصادفی و آرایه‏ ای از رشته ‏ها را شرح می‏دهد.

این مقاله نحوه‏ ی نحوه‏ ی ایجاد یک عدد صحیح تصادفی و رشته ‏های تصادفی درسی شارپ و .NET Core با استفاده از کلاس Random را شرح می‏دهد.

عدد تصادفی چیست ؟

عددی که دنباله مشخصی ندارد و با دامنه داده شده در تابع 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

شکل ۲

نحوه ی انتخاب یک رشته ‏ی تصادفی از آرایه‏ای از رشته‏ ها

می‎توانیم از تولید کننده‏ ی عدد تصادفی برای انتخاب یک آیتم تصادفی از یک آرایه استفاده کنیم.

قطعه کد زیر دارای آرایه‏ ای از نام نویسندگان (رشته ‏ها) است.

می‏توانیم یک نویسنده‏ ی تصادفی از طریق تولید یک عدد تصادفی که کوچکتر از تعداد آیتم‏ های موجود در آرایه است انتخاب کرده و از اندیس تصادفی برای انتخاب یک نام نویسنده تصادفی در رشته استفاده کنیم.
متد 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();  
    }  
}  

فهرست ۷

رشته‏ ی تصادفی و رمز عبور تصادفی بصورت شکل ۲ هستند.

Random

زهره سلطانیان

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

ما یک پرسشنامه‌ی کوچولو داریم، که قول میدیم وقتتون رو خیلی نمی‌گیره، ولی کلی به ما کمک می‌کنه، چون هم assessment مونه ,و هم شما به ما در این زمینه کمک میکنید.بزن بریم