[Hỏi đáp] Tỉ lệ random

  Bài viết hay nhất1
Em có var a = {1,2,3,4,5}
Em muốn bốc random nhưng mà tỉ lệ ra 5 là 5%, ra 4 là 25%, bla bla đó :3
  Bài viết hay nhất2
đã random thì tỉ lệ không có ý nghĩa mấy , vì tỉ lệ là ở mỗi lần code chạy (quay số, .....) chứ không phải tổng.
vd quay số loto 5 số 1,2,3,4,5 100 lần thì 5 ra 5 lần, 4 ra 25 lần vẫn không gì để khẳng định tỉ lệ ra 5 là 5% 4 là 25% hết
  Bài viết hay nhất3
ở đây e có 5 đối tượng, thì chia đều ra theo 100:
  • Số 5 = 5% >> 1 - 5
  • Số 4 = 25% >> 6 - 30
  • Số 3 = 10% >> 31 - 40
  • Số 2 = 20% >> 41 - 60
  • Số 1 = còn lại >> 61 - 100

Sau đó random 1 -> 100, rơi vào khoảng nào sẽ tương ứng với số đó.
Ý tưởng là thế, còn code thế nào cho gọn hoặc làm thành plugin thì tự mò nhé :3
  Bài viết hay nhất4
Ôi zời :v Thế này thì bí rồi
  Bài viết hay nhất5
Ờ mà hình như không cần phân đoạn như thế, mỗi lần random chỉ lấy 1 đối tượng nên nếu là 5% thì chỉ cần kết quả random ra từ 0 -> 4 (trong kết quả random 0 -> 99) là chọn.
Tương tự thì 25% sẽ là 0 -> 24 (trong kết quả random 0 -> 99).

Code kiểm tra % sẽ là thế này:
Code:
function percent(a){
   return (Math.floor(Math.random() * 100) < a);
}

Khi sử dụng thì dùng:
Code:
percent(NUMBER);
Trong đó NUMBER là tỷ lệ %.
Kết quả trả về là một Boolean, nếu trong khoảng tỷ lệ sẽ là true, ngược lại là false.

Ví dụ:
Code:
percent(25); // 25%
Code:
if(percent(25)){
   alert("Ok");
}
  Bài viết hay nhất6
You cannot reply to topics in this forum