1. Sử dụng hàm random trong JavaScript

Như ở bài trước mình có nói về hàm random() rồi. 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).

Ví dụ:

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = Math.random();
</script>

Hàm Math.random() luôn trả về một số thấp hơn 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 này ta sẽ tìm hiểu sau hơn về nó nhé.

2. Số nguyên ngẫu nhiên trong JavaScript

Hàm Math.random() được sử dụng với hàm Math.floor()có thể được sử dụng để trả về số nguyên ngẫu nhiên. Tuy nhiên đó chỉ là cách gọi để ta thấy thân thuộc nhất, giống như những gì ta đã học với toán bình thường. Không có cái gọi là số nguyên JavaScript. Chúng ta đang nói về những con số không có số thập phân ở đây.

Ví dụ:

<script>
    //random số từ 0 - 9
    var a = Math.floor(Math.random() * 10);
    document.write(a);
</script>
<script>
    //random số từ 0 - 99
    var a = Math.floor(Math.random() * 100);
    document.write(a);
</script>
<script>
    //random số từ 1 - 10
    var a = Math.floor(Math.random() * 10) + 1;
    document.write(a);
</script>
<script>
    //random số từ 3 - 7
    var a = Math.floor(Math.random() * 5) + 3;
    document.write(a);
</script

3. Xây dựng hàm tạo số nguyên ngẫu nhiên

Như ở những ví dụ trên thì giá trị trả về luôn nằm trong một khoảng cho trước. Như vậy câu hỏi đặt ra nếu làm theo cách trên để random nhiều đoạn khác nhau thì sao? Nó sẽ gây ra rất nhiều hạn chế cho chúng ta. 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.

<p id="demo1"></p>

<p id="demo2"></p>

<p id="demo3"></p>

<script>

    function TaoSoNgauNhien(min, max){
        return Math.floor(Math.random() * (max - min)) + min;
    }

    var a = TaoSoNgauNhien(1, 10);
    var b = TaoSoNgauNhien(3, 8);
    var c = TaoSoNgauNhien(2, 5);

    document.getElementById("demo1").innerHTML = a;
    document.getElementById("demo2").innerHTML = b;
    document.getElementById("demo3").innerHTML = c;

</script>

Hàm JavaScript này luôn trả về một số ngẫu nhiên giữa tối thiểu (bao gồm) và tối đa (loại trừ):

<button onclick="document.getElementById('demo').innerHTML = getRndInteger(0,10)">Click Me</button>

<p id="demo"></p>

<script>
function getRndInteger(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}
</script>

Hàm JavaScript này luôn trả về một số ngẫu nhiên giữa tối thiểu và tối đa (bao gồm cả hai):

<button onclick="document.getElementById('demo').innerHTML = getRndInteger(1,10)">Click Me</button>

<p id="demo"></p>

<script>
function getRndInteger(min, max) {
  return Math.floor(Math.random() * (max - min + 1) ) + min;
}
</script>