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

Random

عدد تصادفی ، کلاس 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


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

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

دیدگاه‌ها

*
*

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