30/09/2018, 19:20

Hỏi về hàm RANDOM

các bạn cho mình hỏi rand()%10 là gì và tại sao ta phải dùng %
và cho mình hỏi thêm một chuyện nữa là hàm randomize khác gì với hàm srand(time(NULL)) ạ???

Nguyễn Văn Dũng viết 21:30 ngày 30/09/2018
  • Vấn đề thứ nhất: Dùng % 10 để bạn lấy được một số ngẫu nhiên nằm trong đoạn từ 0 tới 9.
  • Vấn đề thứ 2. Nếu bạn chỉ dùng hàm rand() mà không khai báo srand(time(NULL)) thì bạn sẽ chỉ được những số ngẫu nhiên nhưng lặp đi lặp lại mỗi lần bạn gọi hàm rand()
    time(Null) là tham số của srand(). Mà thời gian là đại lượng luôn luôn thay đổi vậy nên hàm rand() của bạn sẽ lấy được những số mà không thể đoán biết trước.
Demons Doan. viết 21:37 ngày 30/09/2018

%

nhung tai sao ta phai dung % v anh cái % làm em khó hiểu về nó quá

Quân Lê viết 21:34 ngày 30/09/2018

% là phép chia lấy dư đó. Hiểu nôm na là lấy các kết quả số dư của rand() chia cho 10
Muốn tra cái gì thì gg đầu tiên , cái này có đầy trên mạng mà : http://www.cplusplus.com/reference/cstdlib/rand/

Câu 1

% đây là phép chia lấy dư. Đặc tính của phép chia lấy dư là kết quả của phép tính này luôn nằm trong khoảng từ 0 cho đến thương số. Ví dụ như:

a % b = c => 0 <= c < b.

ran() là hàm cung cấp 1 số chưa biết trước. Số này có thể nằm từ 0 đến vô cùng.

=> Để giới hạn con số được sinh ra đó. Người ta kết hợp với việc chia lấy dư.

Câu 2

Với bất kì một hàm lấy số ngẫu nhiên nào cũng đều phải dùng một thuật toán để sinh ra số. Số được sinh ra luôn phải có một con số cho trước gọi là số mầm. Do máy tính thì không giống con người để có thể ngẫu nhiên bốc ra một thứ gì đó. Hàm srand() là hàm dùng để thay đổi số mầm của hàm rand()

Bài liên quan
0