18/08/2018, 11:16

Kỹ thuật tạo một số ngẫu nhiên trong JavaScript

- Ở bài học trước, tôi đã giới thiệu sơ qua về phương thức random() của đối tượng Math, nó dùng để tạo một số ngẫu nhiên trong khoảng từ 0 đến 1 (không bao gồm số 1) - Tuy nhiên không dừng lại ở đó, nếu phương thức random() được sử dụng kết hợp với các phương thức khác thì nó có thể tạo ra ...

- Ở bài học trước, tôi đã giới thiệu sơ qua về phương thức random() của đối tượng Math, nó dùng để tạo một số ngẫu nhiên trong khoảng từ 0 đến 1 (không bao gồm số 1)

- Tuy nhiên không dừng lại ở đó, nếu phương thức random() được sử dụng kết hợp với các phương thức khác thì nó có thể tạo ra những số ngẫu nhiên đa dạng hơn.

- Ở bài hướng dẫn này, tôi sẽ giới thiệu đến bạn kỹ thuật để tạo một số ngẫu nhiên đa dạng hơn thông qua những ví dụ.

1) Tạo một số nguyên ngẫu nhiên

Ví dụ 1

Tạo một số nguyễn ngẫu nhiên trong đoạn từ 0 đến 9

<script>
    Math.floor(Math.random() * 10);
</script>
Xem ví dụ
Ví dụ 2

Tạo một số nguyễn ngẫu nhiên trong đoạn từ 0 đến 10

<script>
    Math.floor(Math.random() * 11);
</script>
Xem ví dụ
Ví dụ 3

Tạo một số nguyễn ngẫu nhiên trong đoạn từ 0 đến 99

<script>
    Math.floor(Math.random() * 100);
</script>
Xem ví dụ
Ví dụ 4

Tạo một số nguyễn ngẫu nhiên trong đoạn từ 0 đến 100

<script>
    Math.floor(Math.random() * 101);
</script>
Xem ví dụ
Ví dụ 5

Tạo một số nguyễn ngẫu nhiên trong đoạn từ 1 đến 10

<script>
    Math.floor(Math.random() * 10) + 1;
</script>
Xem ví dụ
Ví dụ 6

Tạo một số nguyễn ngẫu nhiên trong đoạn từ 1 đến 100

<script>
    Math.floor(Math.random() * 100) + 1;
</script>
Xem ví dụ
Ví dụ 7

Tạo một số nguyễn ngẫu nhiên trong đoạn từ 3 đến 7

<script>
    Math.floor(Math.random() * 5) + 3;
</script>
Xem ví dụ
Ví dụ 8

Tạo một số nguyễn ngẫu nhiên trong đoạn từ 3 đến 9

<script>
    Math.floor(Math.random() * 7) + 3;
</script>
Xem ví dụ

2) Xây dựng hàm dùng để tạo số nguyên ngẫu nhiên

- Ta thấy trong mỗi ví dụ phía trên, giá trị trả về luôn nằm trong một đoạn nhất định, ví dụ:

  • Từ 0 đến 9
  • Từ 1 đến 100
  • Từ 3 đến 7
  • ....

    ==> Điều đó thật hạn chế nếu như ta muốn tạo nhiều số nguyên trong nhiều đoạn khác nhau.

- Từ đây, để giải quyết vấn đề này thì chúng ta nên xây dựng một hàm tạo số nguyên ngẫu nhiên, chỉ với việc thay đổi giá trị của tham số là ta đã có thể xác định được một đoạn mới.

Ví dụ

Tạo một số nguyên ngẫu nhiên trong đoạn từ "min" đến "max" (không bao gồm max)

<script>
    function TaoSoNgauNhien(min, max){
        return Math.floor(Math.random() * (max - min)) + min;
    }
    var a = TaoSoNgauNhien(1, 10); //Trả về một số ngẫu nhiên từ 1 đến 9
    var b = TaoSoNgauNhien(3, 8); //Trả về một số ngẫu nhiên từ 3 đến 7
    var c = TaoSoNgauNhien(2, 5); //Trả về một số ngẫu nhiên từ 2 đến 4
</script>
Xem ví dụ
Ví dụ

Tạo một số nguyên ngẫu nhiên trong đoạn từ "min" đến "max" (bao gồm max)

<script>
    function TaoSoNgauNhien(min, max){
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    var a = TaoSoNgauNhien(1, 10); //Trả về một số ngẫu nhiên từ 1 đến 10
    var b = TaoSoNgauNhien(3, 8); //Trả về một số ngẫu nhiên từ 3 đến 8
    var c = TaoSoNgauNhien(2, 5); //Trả về một số ngẫu nhiên từ 2 đến 5
</script>
Xem ví dụ
0