Random « MicrosoftTech.Net

Bài toán Sinh giá trị Ngẫu nhiên

Khởi tạo Giá trị ngẫu nhiên trong Csharp | MicrosoftTech.Net

1. Hàm sinh ngẫu nhiên trong csharp Trong lập trình csharp hỗ trợ đối tượng random để sinh ngẫu nhiên một giá trị số nguyên, đi kèm là phương thức .Next(); để sinh giá trị ngẫu nhiên theo điều kiện nhất định. Phương thức .Next() được overload thành 3 dạng như ví dụ bên dưới.

Dạng thứ nhất: Sinh ngẫu nhiên một giá trị số nguyên int. Số nguyên int trong lập trình csharp có giá trị từ 0 -> 2^31-1. (2^31-1 = 2148486647) Dạng thứ hai: Sinh ngẫu nhiên một giá trị số nguyên từ 9 đến giá trị cho trước. Dạng thứ ba: Sinh ngẫu nhiên một giá trị số nguyên trong khoảng 2 số nguyên cho trước.

2. Sinh ngẫu nhiên một dãy số tăng dần Trong ví dụ này ta sẽ sinh một mảng số nguyên 1 phần tử có giá trị tăng dần. Phương pháp: Phần tử đầu tiên sẽ được sinh ngẫu nhiên, các phần tử tiếp theo sẽ bằng phần tử trước đó cộng thêm một lượng ngẫu nhiên; Như vậy đảm bảo phần tử sau sẽ luôn lớn hơn phần tử cho trước. Ngược lại nếu muốn sinh một dãy giảm dần, trước tiên ta sinh một dãy tăng sau đó tiến hành reverse để có dãy giảm dần. Nếu như làm theo phương pháp phần tử sau bằng phần tử trước trừ đi một lượng ngẫu nhiên thì dễ xảy ra trường hợp sinh ra ra …..

Bài toán Sinh dãy số Nhị phân

Bài toán Sinh dãy Nhị phân | MicrosoftTech.Net

1. Bài toán Bài toán hôm nay sẽ sẽ tìm hiểu phương pháp để sinh ra dãy tất cả các số nhị phân với chiều dài cho trước. Số nhị phân là số được tạo nên bởi 2 ký tự suy nhất là 0 và 1. Ví dụ bên mẫu bên trên liệt kê tất cả các số nhị phân với chiều dài bằng 3. Trong ví dụ này sẽ có 8 kết quả thỏa mãn yêu cầu, giá trị nằm trong khoảng từ 000 tới 111 (Số nhị phân). Và cũng rất dễ dàng ta có thể tính được số lượng phần tử trong danh sách cần tìm. Nếu gọi n là chiều dài của số nhị phân và len là tổng số phần tử thì len = 2^n.

2. Minh họa bài toán với mã nguồn Csharp Bên dưới là minh họa tôi viết bằng Csharp. Sẽ không tốt lắm khi minh họa thuật toán bằng ngôn ngữ Csharp (Tốt nhất là C++), nhưng trong khuôn khổ website này những bài minh họa tôi chỉ sử dụng ngôn ngữ Csharp và cố gắng đưa vào điểm mạnh của Csharp – Lập trình Hướng đối tượng vào trong từng ví dụ để tập dần thói quen trong Lập trình hướng đối tượng với Csharp, thiết nghĩ đây cũng là điểm tốt.

Trong ví dụ, tôi xây dựng class DemoClass thực hiện trọn gói yêu cầu của đề bài. Khi khởi tạo đối tượng …..