Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Không hiểu tác dụng của hàm srand(time(NULL))

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    9

    Mặc định Không hiểu tác dụng của hàm srand(time(NULL))

    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:

    Code:
    // Set random number seed
    srand(time(NULL));
    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?

    Mong các bro giảng giải dùm! Thanks!

  2. #2
    Ngày gia nhập
    03 2007
    Bài viết
    179

    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

  3. #3
    Ngày gia nhập
    02 2008
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi BuithiHa Xem bài viết
    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
    Tức là chỉ cần thêm srand(time(NULL)) vào trước hàm random thì các lần random sẽ không trùng nhau về giá trị??? Mình vẫn chưa hiểu lắm. Ví dụ muốn hiển thị 25 số từ 1 đến 25 lên màn hình theo 1 thứ tự bất kì (4 12 20 1 ... ) thì phải làm thế nào?

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    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

  5. #5
    Ngày gia nhập
    02 2008
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi void main () Xem bài viết
    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!)

  6. #6
    Ngày gia nhập
    03 2007
    Bài viết
    179

    Mặc định Không hiểu tác dụng của hàm srand(time(NULL))

    Trích dẫn Nguyên bản được gửi bởi longminhhai Xem bài viết
    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 sieuphuonghttp://forums.congdongcviet.com/showthread.php?p=31203
    đi, có khác chăng cách diễn đạt mình không pro

  7. #7
    Ngày gia nhập
    02 2008
    Bài viết
    9

    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!!!!!

  8. #8
    Ngày gia nhập
    03 2011
    Bài viết
    2

    Bạn ơi mình đã thử thế này nhưng vẫn bị ra các giá trị trùng nhau:
    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);
    	}
    Nếu cho Srand vào vòng lặp sẽ bị giống nhau tất cả.....
    Làm thế nào để random trong vòng lặp ko ra trùng nhau.

Các đề tài tương tự

  1. Lập trình C++ Lỗi hàm srand và rand trong Eclipse [Giúp mình với]
    Gửi bởi LinuxFrenzy trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 25-07-2012, 07:49 PM
  2. lại gặp rắc rối với hàm srand
    Gửi bởi hi_shinichi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 13
    Bài viết cuối: 27-04-2010, 04:42 PM
  3. Lập trình C++ Thắc mắc về hàm srand()
    Gửi bởi hi_shinichi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 17-04-2010, 12:04 PM
  4. Cho em hỏi về hàm srand một chút
    Gửi bởi lostninja trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 15-03-2009, 09:31 AM
  5. Dùng time kết hợp date/time/year để auto...
    Gửi bởi luboquanvu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 33
    Bài viết cuối: 13-12-2008, 10:58 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn