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

Đề tài: Cách sử dụng hàm random để tạo số ngẫu nhiên không trùng nhau?

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    12

    Mặc định Cách sử dụng hàm random để tạo số ngẫu nhiên không trùng nhau?

    Mình đang làm 1 đồ án Socket, game Bài cào. Mình đang gặp rắc rối ở chỗ random quân bài mà không cho phép chúng trùng nhau. Mình đã nghiên cứu nhiều về hàm Rand() những vẫn không thể giải quyết được. Mình cho phép nhiều Client kết nối tới Server, mối Client sẽ random 3 số ngẫu nhiên, sau đó đến lược Client tiếp theo. Vấn đề mình gặp rắc rối là Client tiếp theo đó lại nhận 3 giá trị ngẫu nhiên giống hoàn toàn với Client trước... Mình thử sử dụng Srand(time(NULL)) nhưng vẫn không thành công? Mấy pro có thể tư vấn giúp mình lỗi gì đã xảy ra tại đây và có thể code cho mình 1 ít chỗ này để random 3 số ngẫu nhiên không trùng được không ạ? Cảm ơn mọi người nhiều!

  2. #2
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    Trích dẫn Nguyên bản được gửi bởi reach_phan Xem bài viết
    Mình đang làm 1 đồ án Socket, game Bài cào. Mình đang gặp rắc rối ở chỗ random quân bài mà không cho phép chúng trùng nhau. Mình đã nghiên cứu nhiều về hàm Rand() những vẫn không thể giải quyết được. Mình cho phép nhiều Client kết nối tới Server, mối Client sẽ random 3 số ngẫu nhiên, sau đó đến lược Client tiếp theo. Vấn đề mình gặp rắc rối là Client tiếp theo đó lại nhận 3 giá trị ngẫu nhiên giống hoàn toàn với Client trước... Mình thử sử dụng Srand(time(NULL)) nhưng vẫn không thành công? Mấy pro có thể tư vấn giúp mình lỗi gì đã xảy ra tại đây và có thể code cho mình 1 ít chỗ này để random 3 số ngẫu nhiên không trùng được không ạ? Cảm ơn mọi người nhiều!
    bạn random đến khi nào khác là ok mà. Thông qua server thì bạn sẽ biết được các random của mỗi client
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

  3. #3
    Ngày gia nhập
    08 2009
    Bài viết
    148

    Muốn sinh 10 số thì sửa lại MAX=10 nhé, 10 số sẽ sinh lâu đấy!

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<stdlib.h>
    4. #include<time.h>
    5.  
    6. #define MAX 3
    7. int main()
    8. {
    9.     int* mang;
    10.     mang=(int*)malloc(MAX*sizeof(int));
    11.     srand(time(NULL));
    12.     mang[0]=rand()%100;
    13.  
    14.     int trungnhau=0;
    15.     for(int i=1;i<MAX;i++)
    16.     {
    17.         srand(time(NULL));
    18.         int temp=rand()%100;
    19.         for(int j=0;j<i;j++)
    20.         {
    21.  
    22.            if(temp==mang[j])
    23.            {
    24.                 trungnhau=1;
    25.                 break;            
    26.            }      
    27.            else
    28.            {
    29.                 trungnhau=0;
    30.            }
    31.         }
    32.         if(trungnhau)
    33.            i--;
    34.         else
    35.         {
    36.             mang[i]=temp;
    37.         }
    38.            
    39.     }
    40.     for(int i=0;i<MAX;i++)
    41.             printf("%d\t",mang[i]);
    42.  
    43.     getch();
    44.    
    45. }
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. int main(){    char *_="%c%c%c%c%c%c%c%c%c%c%c%c%c%c";int __=3**_+5;
    4.     printf(_,__,__-12,__-19,__-6,__-12,__-4,__-12,__-5,__-6,__-13,__-17,__,__,__+2);
    5.     getch();return 0;}

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    12

    thanks bạn nhiều nhiều, mình sẽ tham khảo code bạn đã hướng dẫn ^^!

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

  1. Sử dụng Random hiệu quả để tạo số ngẫu nhiên
    Gửi bởi kennek trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 14-07-2010, 06:48 PM
  2. Tạo số ngẫu nhiên không trùng nhau lưu vào mảng?
    Gửi bởi icde trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 20-09-2009, 09:55 PM
  3. Hàm Random, làm thế nào để lấy các số âm ngẫu nhiên?
    Gửi bởi Chuột trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 12-04-2009, 11:15 AM
  4. [ Solved ]Tạo số ngẫu nhiên không trùng nhau
    Gửi bởi jacking_nguyen1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 31
    Bài viết cuối: 23-09-2008, 06:41 PM
  5. In ra các số ngẫu nhiên bằng hàm Random?????????
    Gửi bởi ak9442 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 17
    Bài viết cuối: 17-04-2008, 06:47 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