Luyện tập câu lệnh phát sinh ngẫn nhiên random
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. Show Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. 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 [free tuts .net] Để 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 Freetuts.net---"); } } } Kết quả: 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 Freetuts.net---"); } } } Kết quả: 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 !!! Trong bài trước, tôi đã đưa ra một bài tập sinh số ngẫu nhiên có kiểu dữ liệu là Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]1 bằng cách sử dụng phương thức Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]2. Trong bài này, chúng ta sẽ cùng nhau tìm hiểu cách sinh số ngẫu nhiên khác đó là sử dụng thư viện xử lý số ngẫu nhiên Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]3 trong Java. Cuối bài này, tôi sẽ đưa ra một số bài tập để các bạn luyện tập! Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. 1. Tạo mới 1 RandomNhư chúng ta đã biết, phương thức Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]2 của thư viện xử lý toán học Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]5 chỉ được dùng để sinh số ngẫu nhiên có kiểu dữ liệu là Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]1, thì đối với thư viện xử lý số ngẫu nhiên Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]3 của Java chúng ta có thể sinh các giá trị ngẫu nhiên có kiểu dữ liệu là Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]8, Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]9, Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]1, public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ System.out.println("Số vừa được sinh ra là " + number); int number1 = rd.nextInt(4); // trả về 1 số nguyên nằm trong phạm vi [0...3) System.out.println("Số vừa được sinh ra là " + number1); // trả về 1 số nguyên nằm trong phạm vi [-4...-1] // đối với rd.nextInt(4) thì số lớn nhất là 3 và số nhỏ nhất là 0 // ta có 3 - 4 = -1 và 0 - 4 = -4 // nên các số được sinh ra sẽ nằm trong đoạn [-4...-1] int number2 = -4 + rd.nextInt(4); System.out.println("Số vừa được sinh ra là " + number2); }1, public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ System.out.println("Số vừa được sinh ra là " + number); int number1 = rd.nextInt(4); // trả về 1 số nguyên nằm trong phạm vi [0...3) System.out.println("Số vừa được sinh ra là " + number1); // trả về 1 số nguyên nằm trong phạm vi [-4...-1] // đối với rd.nextInt(4) thì số lớn nhất là 3 và số nhỏ nhất là 0 // ta có 3 - 4 = -1 và 0 - 4 = -4 // nên các số được sinh ra sẽ nằm trong đoạn [-4...-1] int number2 = -4 + rd.nextInt(4); System.out.println("Số vừa được sinh ra là " + number2); }2. Để khai báo 1 Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]3, chúng ta sẽ import gói thư viện public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ System.out.println("Số vừa được sinh ra là " + number); int number1 = rd.nextInt(4); // trả về 1 số nguyên nằm trong phạm vi [0...3) System.out.println("Số vừa được sinh ra là " + number1); // trả về 1 số nguyên nằm trong phạm vi [-4...-1] // đối với rd.nextInt(4) thì số lớn nhất là 3 và số nhỏ nhất là 0 // ta có 3 - 4 = -1 và 0 - 4 = -4 // nên các số được sinh ra sẽ nằm trong đoạn [-4...-1] int number2 = -4 + rd.nextInt(4); System.out.println("Số vừa được sinh ra là " + number2); }4 của Java. Cú pháp tạo mới 1 đối tượng Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]3 như sau: Bài viết này được đăng tại [free tuts .net] Cú pháp // Khai báo Random // thì import gói thư viện java.util.Random import java.util.Random; public class TênClass { // Tạo mới 1 đối tượng Random // sử dụng từ khóa new Random rd = new Random(); } Sau đây chúng ta sẽ cùng nhau tìm hiểu các phương thức phổ biến của thư viện này. 2. Các phương thức của RandomPhương thức nextInt()Phương thức public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ System.out.println("Số vừa được sinh ra là " + number); int number1 = rd.nextInt(4); // trả về 1 số nguyên nằm trong phạm vi [0...3) System.out.println("Số vừa được sinh ra là " + number1); // trả về 1 số nguyên nằm trong phạm vi [-4...-1] // đối với rd.nextInt(4) thì số lớn nhất là 3 và số nhỏ nhất là 0 // ta có 3 - 4 = -1 và 0 - 4 = -4 // nên các số được sinh ra sẽ nằm trong đoạn [-4...-1] int number2 = -4 + rd.nextInt(4); System.out.println("Số vừa được sinh ra là " + number2); }6 sẽ trả về 1 số ngẫu nhiên có kiểu Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]8. Cú pháp Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1] Ví dụ public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ System.out.println("Số vừa được sinh ra là " + number); int number1 = rd.nextInt(4); // trả về 1 số nguyên nằm trong phạm vi [0...3) System.out.println("Số vừa được sinh ra là " + number1); // trả về 1 số nguyên nằm trong phạm vi [-4...-1] // đối với rd.nextInt(4) thì số lớn nhất là 3 và số nhỏ nhất là 0 // ta có 3 - 4 = -1 và 0 - 4 = -4 // nên các số được sinh ra sẽ nằm trong đoạn [-4...-1] int number2 = -4 + rd.nextInt(4); System.out.println("Số vừa được sinh ra là " + number2); } Kết quả sau khi biên dịch chương trình (kết quả của mỗi lần biên dịch chương trình sẽ khác nhau): Phương thức nextFloat()Phương thức public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ System.out.println("Số vừa được sinh ra là " + number); int number1 = rd.nextInt(4); // trả về 1 số nguyên nằm trong phạm vi [0...3) System.out.println("Số vừa được sinh ra là " + number1); // trả về 1 số nguyên nằm trong phạm vi [-4...-1] // đối với rd.nextInt(4) thì số lớn nhất là 3 và số nhỏ nhất là 0 // ta có 3 - 4 = -1 và 0 - 4 = -4 // nên các số được sinh ra sẽ nằm trong đoạn [-4...-1] int number2 = -4 + rd.nextInt(4); System.out.println("Số vừa được sinh ra là " + number2); }8 sẽ trả về 1 số ngẫu nhiên có kiểu Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]9 nằm trong phạm vi [0.0f...1.0f). Cú pháp Random rd = new Random(); float floatNumber = rd.nextFloat(); // trả về 1 số bất kỳ có kiểu là float Ví dụ public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random float floatNumber = rd.nextFloat(); // trả về 1 số bất kỳ có kiểu là float System.out.println("Số vừa được sinh ra là " + floatNumber); } Kết quả sau khi biên dịch chương trình (kết quả của mỗi lần biên dịch chương trình sẽ khác nhau): Phương thức nextDouble()Phương thức Random rd = new Random(); float floatNumber = rd.nextFloat(); // trả về 1 số bất kỳ có kiểu là float0 sẽ trả về 1 số ngẫu nhiên có kiểu Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]1 nằm trong phạm vi [0.0d...1.0d). Cú pháp Random rd = new Random(); // trả về 1 số bất kỳ có kiểu là double double doubleNumber = rd.nextDouble(); Ví dụ public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random // trả về 1 số bất kỳ có kiểu là double double doubleNumber = rd.nextDouble(); System.out.println("Số vừa được sinh ra là " + doubleNumber); } Kết quả sau khi biên dịch chương trình (kết quả của mỗi lần biên dịch chương trình sẽ khác nhau): Phương thức nextLong()Phương thức Random rd = new Random(); float floatNumber = rd.nextFloat(); // trả về 1 số bất kỳ có kiểu là float2 sẽ trả về 1 số ngẫu nhiên có kiểu public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ System.out.println("Số vừa được sinh ra là " + number); int number1 = rd.nextInt(4); // trả về 1 số nguyên nằm trong phạm vi [0...3) System.out.println("Số vừa được sinh ra là " + number1); // trả về 1 số nguyên nằm trong phạm vi [-4...-1] // đối với rd.nextInt(4) thì số lớn nhất là 3 và số nhỏ nhất là 0 // ta có 3 - 4 = -1 và 0 - 4 = -4 // nên các số được sinh ra sẽ nằm trong đoạn [-4...-1] int number2 = -4 + rd.nextInt(4); System.out.println("Số vừa được sinh ra là " + number2); }1. Cú pháp Random rd = new Random(); // khai báo 1 đối tượng Random // trả về 1 số bất kỳ có kiểu long long longNumber = rd.nextLong(); Ví dụ public static void main(String[] args) { Random rd = new Random(); // khai báo 1 đối tượng Random // trả về 1 số bất kỳ có kiểu long long longNumber = rd.nextLong(); System.out.println("Số vừa được sinh ra là " + longNumber); } Kết quả sau khi biên dịch chương trình (kết quả của mỗi lần biên dịch chương trình sẽ khác nhau): Phương thức nextBoolean()Phương thức Random rd = new Random(); float floatNumber = rd.nextFloat(); // trả về 1 số bất kỳ có kiểu là float4 sẽ trả về 1 biến ngẫu nhiên có giá trị là Random rd = new Random(); float floatNumber = rd.nextFloat(); // trả về 1 số bất kỳ có kiểu là float5 hoặc Random rd = new Random(); float floatNumber = rd.nextFloat(); // trả về 1 số bất kỳ có kiểu là float6. Cú pháp Random rd = new Random(); // khai báo 1 đối tượng Random // trả về 1 biến bool có giá trị là true hoặc false. boolean bool = rd.nextBoolean(); Ví dụ Random rd = new Random(); int number = rd.nextInt(); // trả về 1 số nguyên bất kỳ int number1 = rd.nextInt(int n); // trả về 1 số nguyên nằm trong phạm vi [0...n-1]0 Kết quả sau khi biên dịch chương trình: 3. Lời kếtTrong bài này, tôi đã hướng dẫn các bạn tìm hiểu về thư viện xử lý số ngẫu nhiên Random trong Java và tôi cũng đã đưa ra một số ví dụ minh họa các phương thức của thư viện này. Sang bài này, chúng ta sẽ tìm hiểu thư viện cuối cùng - đó là thư viện xử lý chuỗi trong Java. Các bạn theo dõi nhé! |