Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 19 kết quả

Đề tài: hàm random(int n) hoạt động như thế nào?

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

    Mặc định hàm random(int n) hoạt động như thế nào?

    em có câu lệnh sau :
    Code:
    k=0;
    while(k!=6)
    {j=random(6);
    printf("%d,",j);
    k++
    sao mổi lần in số bị trùng ,cụ thể như vầy nè :1,1,2,3,3,xin hỏi các huynh làm cách nào để nó in mỗi số một lần thôi , và đủ 5 số

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

    Trích dẫn Nguyên bản được gửi bởi forever7040 Xem bài viết
    em có câu lệnh sau :
    Code:
    k=0;
    while(k!=6)
    {j=random(6);
    printf("%d,",j);
    k++
    Code:
    sao mổi lần in số bị trùng ,cụ thể như vầy nè :1,1,2,3,3,xin hỏi các huynh làm cách nào để nó in mỗi số một lần thôi , và đủ 5 số
    Thử thay:
    j = random(6);
    bằng:
    j = random(100);
    Số trong random(..) càng lớn thì xác xuất trùng càng ít.

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

    [QUOTE=neverland87;12908]
    Trích dẫn Nguyên bản được gửi bởi forever7040 Xem bài viết
    em có câu lệnh sau :

    Thử thay:
    j = random(6);
    bằng:
    j = random(100);
    Số trong random(..) càng lớn thì xác xuất trùng càng ít.
    nhưng mà yêu cầu của bài tập chỉ try xuất trong nhưng số nhỏ hơn 6 ,tuyệt đối không trùng ,thế mới khó chứ

  4. #4
    Ngày gia nhập
    05 2007
    Nơi ở
    HCMC
    Bài viết
    60

    Thử dùng cách này xem:
    - bước 1: khai báo thư viện
    Code:
    #include <time.h>
    #include <stdlib.h>
    - bước 2: khởi động bộ tạo random
    Code:
    srand((unsigned)(time(NULL)));
    - bước 3: lấy số random
    Code:
    x = rand() % 6;

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

    Trích dẫn Nguyên bản được gửi bởi forever7040 Xem bài viết
    em có câu lệnh sau :
    Code:
    k=0;
    while(k!=6)
    {j=random(6);
    printf("%d,",j);
    k++
    sao mổi lần in số bị trùng ,cụ thể như vầy nè :1,1,2,3,3,xin hỏi các huynh làm cách nào để nó in mỗi số một lần thôi , và đủ 5 số
    de lay so ngau nhien tu 0-5
    thu thay j = (int) 6*(double) rand()/(double) RAND_MAX;

  6. #6
    No Avatar
    POF_power.of.faith Khách

    Mặc định hàm random(int n) hoạt động như thế nào?

    Trích dẫn Nguyên bản được gửi bởi sonhn Xem bài viết
    Thử dùng cách này xem:
    - bước 1: khai báo thư viện
    Code:
    #include <time.h>
    #include <stdlib.h>
    - bước 2: khởi động bộ tạo random
    Code:
    srand((unsigned)(time(NULL)));
    - bước 3: lấy số random
    Code:
    x = rand() % 6;
    x = random(6) và x= rand() % 6 chỉ là một thôi chứ không có gì khác nhau. Hàm random() không phải chuẩn C/C++ mà là 1 hàm trong BC++ có dạng:
    int random(int n) { return rand()%n; }

  7. #7
    Ngày gia nhập
    04 2007
    Bài viết
    128

    Trong sách thầy Lang có, tìm xem!!

  8. #8
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    #_Đúng là bó tay cái người hỏi câu này *_*
    __Thứ nhất : yêu cầu hỏi cụ thể là hỏi về cái gì ?
    __Thứ hai : bác muốn hỏi về VC hay BC ?_?

    ^Tổng hợp lại các bài trên thì đề bài có thể là thể này :
    :( Làm thế nào cho xuất ra 6 số ngẫu nhiên không trùng nhau trong khoảng [0.6) tức là ngẫu nhiên xuất hiện : 0,1,2,3,4,5 <không theo thứ tự nào hết>

    +Cách giải : đơn giản hóa vấn đề : số in ra đem so sánh với các số đã xuất xem có trùng không,nếu trùng thì bỏ qua tạo số khác nếu không trùng thì in ra và tăng biến đếm.

    Code:
    int iCount = 0;
    int iResult[6]; // Khởi tạo bằng giá trị nào đó : ví dụ : iResult[k] = -1;
    while ( iCount < 6 )
    {
          iOut = ran() % 6;
          for ( iCheck = 0;iCheck<iCount ; iCheck++)
          {
                 if(iResult[iCount] == iOut) 
                           continue;
                 else
                       iResult[iCount++] = iOut;  // Thích thì cho in kết quả ở đây cũng được nếu không thì in ra cả mảng sau khi lấy hết số
          }
    }
    ..........
    None!

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

    Đã được gửi bởi sonhn
    Thử dùng cách này xem:
    - bước 1: khai báo thư viện

    Code:
    #include <time.h>
    #include <stdlib.h>- bước 2: khởi động bộ tạo random

    Code:
    srand((unsigned)(time(NULL)));- bước 3: lấy số random

    Code:
    x = rand() % 6;

    hic hic cách của bác nó cho ra 6 số như nhau 333333 hoặc 444444
    Đã được chỉnh sửa lần cuối bởi forever7040 : 28-05-2007 lúc 04:24 PM. Lý do: không rõ ràng

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

    Trích dẫn Nguyên bản được gửi bởi pete_87 Xem bài viết
    #_Đúng là bó tay cái người hỏi câu này *_*
    __Thứ nhất : yêu cầu hỏi cụ thể là hỏi về cái gì ?
    __Thứ hai : bác muốn hỏi về VC hay BC ?_?

    ^Tổng hợp lại các bài trên thì đề bài có thể là thể này :
    :( Làm thế nào cho xuất ra 6 số ngẫu nhiên không trùng nhau trong khoảng [0.6) tức là ngẫu nhiên xuất hiện : 0,1,2,3,4,5 <không theo thứ tự nào hết>

    +Cách giải : đơn giản hóa vấn đề : số in ra đem so sánh với các số đã xuất xem có trùng không,nếu trùng thì bỏ qua tạo số khác nếu không trùng thì in ra và tăng biến đếm.

    Code:
    int iCount = 0;
    int iResult[6]; // Khởi tạo bằng giá trị nào đó : ví dụ : iResult[k] = -1;
    while ( iCount < 6 )
    {
          iOut = ran() % 6;
          for ( iCheck = 0;iCheck<iCount ; iCheck++)
          {
                 if(iResult[iCount] == iOut) 
                           continue;
                 else
                       iResult[iCount++] = iOut;  // Thích thì cho in kết quả ở đây cũng được nếu không thì in ra cả mảng sau khi lấy hết số
          }
    }
    ..........
    hic em hỏi có cách nào in 5 số ngẫu nhiên mà không trùng nhau ,viết bằng borlan c , nhưng cách của bác cũng cho kết quả như bác sonhn nó ra 444444 hoặc 555555 có khi no treo máy nữa, hic hic sở dĩ em cần tìm cách này vì em có bài tập truy xuất 30 câu hỏi ngẫu nhiên trong 150 câu ,nếu nó trùng nhau thì không được rồi! các bác cố tìm cách giúp với

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

  1. Kỹ thuật C Tại sao hàm random cho nhiều số thì kết quả random bị trùng lặp?
    Gửi bởi acquydem12 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 18-04-2014, 02:17 PM
  2. Bài tập C Cách cài đặt hàm chèn random vào cây nhị phân như thế nào?
    Gửi bởi vungtroicuabo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 06-11-2011, 10:55 AM
  3. Hàm random trong C# như thế nào ?
    Gửi bởi tuanvu199x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 23
    Bài viết cuối: 01-05-2011, 06:44 PM
  4. Kỹ thuật C++ Thắc mắc sử dụng hàm random trong C++ ?
    Gửi bởi dangnghean 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: 25-03-2011, 12:28 AM
  5. nhập mảng từ bàn phím hoặc random (..help..!)
    Gửi bởi nhocmelaptrinh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 31-05-2010, 07:39 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