Cách tạo các số ngẫu nhiên (Random) trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tạo các số ngẫu nhiên (random) trong C#. Đây là dạng bài tập thường gặp khi bắt đầu học ngôn ngữ lập trình nào đó nói chung và C# nói riêng.

Mình sẽ thực hiện hai chương trình để tạo các số ngẫu nhiên. Chương trình đầu tiên sẽ tạo các số ngẫu nhiên từ 1 đến một số nào đó. Chương trình thứ hai sẽ tạo các số ngẫu nhiên trong một khoảng nhất định do người dùng nhập.

Tạo các số ngẫu nhiên trong C#

Để tạo các số ngẫu nhiên trong C#, khai báo và sử dụng đối tượng Random. Đây là một đối tượng cho phép chúng ta tạo số ngẫu nhiên với giới hạn là số được nhập vào.

Random random = new Random();
random.Next(a);

Trong đó a là giới hạn của các số random, các số được tạo ngẫu nhiên trong khoảng từ 1 đến a.

Bài viết này được đăng tại [kiso.vn]

Để có thể tạo các số ngẫu nhiên mà số lượng được nhập bởi người dùng, ta sử dụng vòng lặp for để lặp và tạo.

//sử dụng vòng lặp for để lặp từ 1 đến số a, tức là hiển thị a số random
for(int i = 1; i <= a; i++)
{
      //sử dụng random.Next(b) để hiển thị các số ngẫu nhiên giới hạn là b
      Console.Write(random.Next(b) + " ");
}

Full code:

using System;

namespace BaiTapCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            //khai báo biến a là số lượng các số cần radom và biến b là giới hạn các số random
            int a, b;
            //yêu cầu người dùng nhập vào số a và số b
            Console.Write("n Nhap vao so luong so can random: ");
            a = Convert.ToInt32(Console.ReadLine());
            Console.Write("n Nhap vao gioi han cua so random: ");
            b = Convert.ToInt32(Console.ReadLine());

            //khai báo đối tượng Random
            Random random = new Random();
            //hiển thị các số random
            Console.Write("n Cac so random la: ");
            //sử dụng vòng lặp for để lặp từ 1 đến số a, tức là hiển thị a số random
            for(int i = 1; i <= a; i++)
            {
                //sử dụng random.Next(b) để hiển thị các số ngẫu nhiên giới hạn là b
                Console.Write(random.Next(b) + " ");
            }
           
            Console.WriteLine("n-----Chuong trinh nay duoc dang tai Kiso.vn---");
        }
    }
}

Kết quả:

bai39 01 png

Tạo các số ngẫu nhiên trong một khoảng nhất định trong C#

Để tạo các số ngẫu nhiên trong một khoảng nhất định do người dùng nhập ta chỉ cần xử lý thêm một chút là xong.

Giả sử ta có số bắt đầu là b và số kết thúc là c. Khi đó các số ngẫu nhiên trong khoảng b -> c được xử lý như sau:

random.Next(c – (b – 1)) + b

Ví dụ:

using System;

namespace BaiTapCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            //khai báo biến a là số lượng các số cần radom và biến b là số bắt đầu, c là số kết thúc
            int a, b, c;
            //yêu cầu người dùng nhập vào số a và số b
            Console.Write("n Nhap vao so luong so can random: ");
            a = Convert.ToInt32(Console.ReadLine());
            Console.Write("n Nhap vao so bat dau: ");
            b = Convert.ToInt32(Console.ReadLine());
            Console.Write("n Nhap vao so ket thuc: ");
            c = Convert.ToInt32(Console.ReadLine());

            //khai báo đối tượng Random
            Random random = new Random();
            //hiển thị các số random
            Console.Write("n Cac so random la: ");
            //sử dụng vòng lặp for để lặp từ 1 đến số a, tức là hiển thị a số random
            for(int i = 1; i <= a; i++)
            {
                //tạo các số ngẫu nhiên từ b -> c
                Console.Write((random.Next(c - (b - 1)) + b) + " ");
            }
           
            Console.WriteLine("n-----Chuong trinh nay duoc dang tai Kiso.vn---");
        }
    }
}

Kết quả:

bai39 02 png

Như vậy là chúng ta đã thực hiện xong chương trình tạo các số ngẫu nhiên trong C#. Các bạn hãy luyện tập thật nhiều để có thể sử dụng nó một cách thành thạo nhé, chúc các bạn thành công !!!

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *