như dòng chú thích của bạn đó set random number seed
tác dụng: bổ trợ cho hàm random. Nếu không có nó trong trường hợp hi hữu 2 lần random có thể trùng giá trị(mình đã xui bị rồi). Những vấn đề sau chắc bạn tự quyết.
vị trí: trên thằng Random 1 dòng
Trong các đoạn code lập trình đồ họa sử dụng DirectX bằng VC++ thường gặp đoạn code sau:
hàm srand(time(NULL)) có tác dụng gì? Không sử dụng nó thì có được không? Sử dụng nó thì được lợi gì? Dùng khi nào? Ở vị trí nào?Code:// Set random number seed srand(time(NULL));
Mong các bro giảng giải dùm! Thanks!
như dòng chú thích của bạn đó set random number seed
tác dụng: bổ trợ cho hàm random. Nếu không có nó trong trường hợp hi hữu 2 lần random có thể trùng giá trị(mình đã xui bị rồi). Những vấn đề sau chắc bạn tự quyết.
vị trí: trên thằng Random 1 dòng
Đã được chỉnh sửa lần cuối bởi BuithiHa : 09-03-2008 lúc 08:51 AM. Lý do: thêm
Vấn đề này đã được trả lời rất nhiều trên CViệt , lần sau bạn hãy tìm kiếm trước khi đặt câu hỏi :
http://forums.congdongcviet.com/showthread.php?p=31203
http://forums.congdongcviet.com/showthread.php?t=2180
xin lỗi vì đã không tìm kỹ trước khi đặt câu hỏi. nhưng mà sau khi đọc 2 topic đó thì hình như hàm srand(time(NULL)) có tác dụng khởi tạo bộ số ngẫu nhiên chứ không thể loại bỏ hiện tượng lặp lại giá trị của rand()?? thế là không như BuithiHa nói?
(Còn cách tạo 1 bộ số ngẫu nhiên ko lặp lại sử dụng mảng thì mình đã làm rồi!)
nếu không khởi tạo thì có nguy cơ trùng(dù hi hữu) bạn đọc bài sieuphuong ở http://forums.congdongcviet.com/showthread.php?p=31203
đi, có khác chăng cách diễn đạt mình không pro
Uh. Mình hiểu ý của bạn ...
Mình chỉ nêu lên những thắc mắc của mình thôi, ko hề có ý nói bạn diễn đạt ko pro.
Rất cám ơn bạn đã quan tâm đến thắc mắc của mình!!!!!
Bạn ơi mình đã thử thế này nhưng vẫn bị ra các giá trị trùng nhau:
Nếu cho Srand vào vòng lặp sẽ bị giống nhau tất cả.....Code:srand(static_cast<unsigned int>(time(0))); //seed random number generator for(int i= 0; i<20; i++) { int randomNumber = rand(); //generate random number int die = (randomNumber % 20) + 1; // get a number between 1 and 6 cout << "You rolled a " << die << endl; Sleep(100); }
Làm thế nào để random trong vòng lặp ko ra trùng nhau.