Computer >> Máy Tính >  >> Lập trình >> Javascript

Lấy hàm Random10 () từ Random7 () trong JavaScript

Vấn đề

const random7 = () => Math.ceil(Math.random() * 7);

Giả sử chúng ta có hàm mũi tên béo ở trên. Hàm này mang lại một số ngẫu nhiên trong khoảng từ 0 (loại trừ) đến 7 (bao gồm) mỗi khi chúng ta thực hiện lệnh gọi đến nó.

Chúng tôi được yêu cầu viết một hàm JavaScript random10 () tương tự, không có đối số và không sử dụng thư viện JavaScript hoặc bất kỳ thư viện nào của bên thứ ba. Và chỉ sử dụng hàm random7 () này, hàm của chúng ta sẽ trả về số ngẫu nhiên trong khoảng từ 0 (loại trừ) đến 10 (bao gồm).

Ví dụ

Mã cho điều này sẽ là -

const random7 = () => Math.ceil(Math.random() * 7);
const random10 = () => {
   let sum;
   for(let i = 0; i < 50; i++){
      sum += random7();
   }
   return (sum % 10) + 1;
};
console.log(random10());

Giải thích mã

Ở đây, chúng tôi chỉ tạo một tổng ngẫu nhiên càng đồng nhất càng tốt, thêm một vài số (trong trường hợp của chúng tôi là 50, tuy nhiên số có thể khác) bằng hàm rand7 () và sử dụng tổng để tạo một số trong Cơ sở 10.

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

NaN