Hỏi đáp cách dùng hàm rand() lấy 1 số từ -a đến a mà bỏ đi 0;

Như mình đã đề cập ở trên, ae giúp mình 1 tay vs ạ; :blush:

Mình có cách này: Random một số x trong khoảng từ 1 đến 2a. Nếu x nhỏ hơn hoặc bằng a, return nó. Nếu không, return a-x.

Cách của mình: Random 2 lần:

  • Random xem nên chọn khoảng [-a, 0) hay (0, a] ?
  • Sau đó random tiếp trong khoảng mà đã chọn được.

Cách của mình :grin:

int x;
do{
   x=rand()%(2*a+1)-a;
}while(x==0);
2 Likes

thì bạn ramdon thế này nhé
randon từ số 0 tới số 2a;
lấy số vừa randon được cộng với -a
code:
do{
so=rand()%(2*a)-a;
}
while(so==0);

Random ra số a cộng lại bằng 0

bác ko thấy while(so==0) à

1 Like
int getRandom(int n){
     return (random()%n+1)*(random()%2?1:-1);
}
4 Likes

Tks bạn. 20 kí tự - fuck this

Cảm ơn mn. Mình thấy do while có vẻ hợp lý

This post was flagged by the community and is temporarily hidden.

Mình random Mẫu số nên = 0 thì lỗi;

This post was flagged by the community and is temporarily hidden.

Cách làm của @Gio hay đấy bạn cố hiểu thử đi.

Cái này gọi là gì thì mình quên r nhưng tương tự viết thế này

if(random()%2)//chắc chắn trả về 0 hoặc 1
   return 1;
else
   return -1;

=> random được âm dương.

Bạn hỏi vô duyên vồn :yum:

1 Like

cú pháp này lạ quá mình không hiểu

Không nên dùng vòng lặp trong trường hợp này

20 kí tự. Tại sao vậy bạn?

Google said that, thấy người ta nói vậy. K nên

This post was flagged by the community and is temporarily hidden.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?