Announcement

Collapse
No announcement yet.

Hàm random trong C!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C++] Hàm random trong C!

    Em đang sử dụng phần mềm Cfree 5 để viết code C. Đoạn code em viết hỗng hiểu sao máy chạy không được hàm random. Nhờ các anh chị, các bạn giúp cho em cách sử dụng hàm random (hoặc rand) trong C. Cám ơn anh chị và các bạn thật nhiều!!!
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    
    void main()
     {
       int a,b;
       randomize();
       a=rand();
       b=random(30);
       printf("a=%d",a);
       printf("b=%d",b);
       getch();
     }
    "Khi bạn sỉ vào mặt một ai đó, thì nhìn lại đi, ba ngón tay còn lại của bạn cũng đang sỉ vào chính mình"

  • #2
    Nếu nhớ không lầm thì hàm randomize() chỉ có trên Borland C, còn các IDE khác không hỗ trợ. Cách chuẩn để tạo số ngẫu nhiên trong C là như sau:
    Code:
    srand(time(NULL)); //dòng này để tạo giá trị seed ngẫu nhiên
    rand(); //dòng này sẽ cho ra một số nguyên ngẫu nhiên từ 0 đến RAND_MAX (được định nghĩa trong file stdlib.h)
    Chưa....

    Comment


    • #3
      PHP Code:
      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>

      int main ()
      {
        
      int n1n2n3;

        
      srand time(NULL) );

        
      n1rand();
        
      n2=rand();
        
      n3=rand();

      + Số random được tạo trong máy thực chất là số giả-random (pseudo-random), nghĩa là vẫn có thể ..đoán được số kế tiếp là số nào. Cơ chế này là do số random được xác định từ 1 con số gọi là seed. Ta nhập vào 1 số seed A thì sẽ ra 1 bộ số random nhất định của A, nhập seed B khác thì ra 1 bộ số random nhất định của B. 2 seed giống nhau sẽ tạo ra bộ số random giống nhau.
      + unsigned int time(NULL) : số giây đã trôi qua kể từ 1/1/1970.
      + void srand ( unsigned int seed ) : Khởi tạo bộ tạo số random với 1 số seed, mỗi số seed tạo ra 1 bộ số random khác nhau. Người ta thường dùng time() để lấy số seed cho nó khác biệt nhau.
      + rand() trả về giá trị thuộc [0..RAND_MAX] (RAND_MAX = 32767). Kể từ lúc gọi srand() trở đi thì bác có thể gọi rand() và mỗi lần gọi nó trả về con số trong bộ random đó.
      Last edited by 08520195; 17-01-2012, 13:48.
      Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
      Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
      Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
      Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
      ...

      Comment


      • #4
        Dạ! Vậy còn hàm random thì sử dụng như thế nào? Em muốn tạo ngẫu nhiên một số có giá trị từ 1->100 thôi, sử dụng hàm rand nó ra số lớn quá!!! Thanhks!
        Last edited by 11520350; 17-01-2012, 14:01.
        "Khi bạn sỉ vào mặt một ai đó, thì nhìn lại đi, ba ngón tay còn lại của bạn cũng đang sỉ vào chính mình"

        Comment


        • #5
          Originally posted by 11520350 View Post
          Dạ! Vậy còn hàm random thì sử dụng như thế nào?
          Đó không phải là hàm trong thư viện chuẩn, và không được sử dụng trừ khi em tự viết. Quên nó đi.

          Comment


          • #6
            Originally posted by 11520350 View Post
            Em muốn tạo ngẫu nhiên một số có giá trị từ 1->100 thôi, sử dụng hàm rand nó ra số lớn quá!!! Thanhks!
            Tạo ngẫu nhiên 1 số trong khoảng (a,b)
            x=rand()%(b-a+1)+a

            Comment


            • #7
              Mình làm được rồi! Cám ơn cả nhà thật nhiều!!
              "Khi bạn sỉ vào mặt một ai đó, thì nhìn lại đi, ba ngón tay còn lại của bạn cũng đang sỉ vào chính mình"

              Comment

              LHQC

              Collapse
              Working...
              X