PDA

View Full Version : [Pascal] Hỏi về thuật toán random



phamquocnga
03-05-2011, 22:29
Mình có 1 bài toán như thế này:

Cho 1 dãy sô nguyên từ 1 đến n. Lấy ngẫu nhiên m só trong dãy (m<=n)sao cho các phần từ không trùng nhau.

Hy vọng được các bạn hướng dẫn cho thuật toán.Thanks nhìu.

bm295
14-05-2011, 13:27
Mình có thắc mắc thế này:

Giả sử bạn có mảng 5 phần tử: 1, 2, 2, 2, 2 (n = 5). Bây giờ bạn muốn lấy ra m = 3 phần tử sao cho các phần tử không trùng nhau, thế thì rõ ràng là không thực hiện được rùi. Ta chỉ có thể lấy ra k = 2 phần tử không trùng nhau thôi. Câu hỏi của mình là đề bài có bắt buộc lấy ra chính xác m phần tử hay không? Hay là ta có thể lấy ra k phần tử (k < m) trong trường hợp số lượng các phần tử khác nhau nhỏ hơn m?

StarGhost
15-05-2011, 00:38
Đọc đề bài không kĩ mà thắc mắc gì? Người ta nói là cho dãy số nguyên từ 1->n còn giả sử gì nữa.

bm295
15-05-2011, 21:50
Đọc đề bài không kĩ mà thắc mắc gì? Người ta nói là cho dãy số nguyên từ 1->n còn giả sử gì nữa.

À mình chỉ cho ví dụ cho dễ hiểu thôi bạn ạ. Ở đây lên forum là để giúp đỡ lẫn nhau chứ không phải là để khích bác hay nói móc nhau. Chắc bạn cũng lớn tuổi rồi nên biết lịch sự tối thiếu một chút.

StarGhost
16-05-2011, 02:39
@bm295: bạn phân tích thử coi mình khích bác, nói móc và thiếu lịch sự với bạn chỗ nào. Bạn tham gia thảo luận mà không chịu tìm hiểu kĩ nội dung thảo luận thì gọi là lịch sự chăng?

MichaelTuanAnh
16-05-2011, 08:57
lấy đc phần tử nào thì remove nó ra khỏi danh sách thì hết trùng (hehe)