Trong một ứng dụng nhỏ được viết bằng C / C ++, tôi gặp vấn đề với rand
chức năng và có thể là hạt giống:
Tôi muốn tạo ra một chuỗi các số ngẫu nhiên có thứ tự khác nhau, tức là với các giá trị logarit khác nhau (cơ sở 2). Nhưng dường như tất cả các số được tạo ra đều có cùng thứ tự, dao động trong khoảng từ 2 ^ 25 đến 2 ^ 30.
Có phải bởi vì rand()
được gieo mầm với thời gian Unix mà bây giờ là một con số tương đối lớn? Tôi đang quên cái gì? Tôi rand()
chỉ gieo hạt một lần vào đầu main()
.
rand()
trả về các số được phân phối đồng đều (tài liệu có thứ hạng cao của Google nói rõ ràng như vậy) Tôi không nghĩ câu hỏi này hữu ích cho các độc giả tương lai. Đó là lý do tại sao bỏ phiếu nhưng đừng để nó ngăn cản bạn sử dụng SO.