Làm cách nào để tìm LCM của một số trong Javascript?

Bắt đầu nội dung chính

OSCC · JavaScript, Toán học, Thuật toán, Đệ quy · 28/12/2020

Tính bội chung nhỏ nhất của hai hay nhiều số

  • Sử dụng công thức ước chung lớn nhất [GCD] và thực tế là
    function smallestCommons[arr] {
    let min = Math.min[...arr] let max = Math.max[...arr] let array = []
    // Creating a full array of all values in the range for [min; min n % currentValue === 0; let common = false let n = max* [max-1]// Checking whether the first value for n is the lowestCommon Multiple common = array.every[lowestCommon]
    //Checking for a true result from the array while [common === false]{
    n++ common = array.every[lowestCommon] } return n}
    3 để xác định bội số chung nhỏ nhất
  • Công thức GCD sử dụng đệ quy

const lcm = [...arr] => {
  const gcd = [x, y] => [!y ? x : gcd[y, x % y]];
  const _lcm = [x, y] => [x * y] / gcd[x, y];
  return [...arr].reduce[[a, b] => _lcm[a, b]];
};

Đoạn trích được đề xuất

  • Tính ước số chung lớn nhất giữa hai hoặc nhiều số/mảng

  • Tính toán khoảng cách giữa hai điểm trong bất kỳ số chiều nào

  • Tính giai thừa của một số

Chà, đây là câu chuyện, tất cả về việc sim của tôi bị lộn, đảo lộn như thế nào. Và tôi muốn dành một phút, chỉ cần ngồi ngay đó, tôi sẽ cho bạn biết cách tính các bội số chung trong JavaSript

Vâng không hoạt động tốt lắm. Tuy nhiên, JS cũng vậy khi thực hiện một trong hai điều này so với Ruby. Không cần phải nói thật tốt khi biết cách làm điều đó trong cả hai

Vì vậy, chúng ta hãy tìm hiểu về JS và lấy bội số chung nhỏ nhất, phải không?

Trong trường hợp này, đó là tìm số nhỏ nhất mà tất cả các số trong một phạm vi đã cho đều chia hết cho không có phần dư. e. g với dãy số từ 1 đến 5, bội chung nhỏ nhất là 60. Vì 60 chia hết cho 1,2,3,4 & 5 không dư

Bây giờ không còn cách nào khác, hãy xem mã để biến điều này thành có thể

function smallestCommons[arr] {
let min = Math.min[...arr] let max = Math.max[...arr] let array = []
// Creating a full array of all values in the range for [min; min n % currentValue === 0; let common = false let n = max* [max-1]// Checking whether the first value for n is the lowestCommon Multiple common = array.every[lowestCommon]
//Checking for a true result from the array while [common === false]{
n++ common = array.every[lowestCommon] } return n}

Chúng ta hãy đi qua điều này từng bước một nhé?

Trước tiên, chúng tôi thiết lập một số biến phức tạp đó, vì chúng tôi không biết thứ tự của mảng gồm hai số chúng tôi đã cung cấp, hãy đảm bảo lấy các giá trị tối đa và tối thiểu trong mảng đó thay vì lấy 0 và

môn Toán. max[] và Toán. min[] là hoàn hảo cho việc này và bằng cách sử dụng toán tử trải rộng trên mảng […arr] vì các phương thức không lấy mảng làm đối số, chúng ta có thể sắp xếp nhanh chóng và dễ dàng

let min = Math.min[...arr]let max = Math.max[...arr]let array = []

Chúng tôi cũng muốn tạo một mảng trống đẹp để điền vào tất cả các giá trị giữa tối thiểu và tối đa, lý do đằng sau điều này là để chúng tôi có được điều khá tiện dụng. phương thức mảng every[] mà JS có. Sau đó, chúng tôi điền vào mảng đó ngay bây giờ bằng cách sử dụng vòng lặp for đơn giản

for [min; min n % currentValue === 0;

Bây giờ, khi biết rằng số nhỏ nhất có thể chia hết cho tất cả các số khác có thể là số lớn nhất trong mảng * [chính nó là 1], chúng tôi đặt đó là giá trị thấp nhất cần kiểm tra [đếm hết từ 1 có vẻ như lãng phí

let n = max* [max-1]

Chúng tôi cũng muốn đặt một biến là sai ở đây, ngay khi nó trở thành đúng [nhờ điều gì sẽ xảy ra tiếp theo], nó sẽ ngắt một vòng lặp và trả về cho chúng tôi một số sẽ là câu trả lời của chúng tôi

let common = false

Định nghĩa của mọi phương thức từ Mozilla webdocs như sau

The every[] method tests whether all elements in the array pass the test implemented by the provided function. It returns a Boolean value.

Đây chính xác là những gì chúng tôi muốn, do đó tại sao chúng tôi đã tạo chức năng lowCommon một phút trước. Truyền nó vào mọi phương thức đồng thời tăng n có nghĩa là nó sẽ tiếp tục chạy trong vòng lặp này cho đến khi common === true

Trước khi đến vòng lặp while, chúng ta chỉ cần kiểm tra kỹ xem giá trị ban đầu của chúng ta là n có phải là số chúng ta đang tìm kiếm không

________số 8

Bây giờ chúng ta đã thoát khỏi vòng lặp while. Điều này sẽ kiểm tra mỗi khi một giá trị được chuyển vào xem có hay không. phương thức every[] đã thay đổi common thành true. Chúng tôi đảm bảo tăng n trước khi kiểm tra, như thể chúng tôi làm điều đó sau đó, giá trị n của chúng tôi nhiều hơn 1 so với kết quả mong muốn của chúng tôi và điều đó thật ngớ ngẩn

while [common === false]{     n++     common =  array.every[lowestCommon]}

Khi common === true vòng lặp dừng lại và n sẽ là mẫu số chung nhỏ nhất của chúng ta và chúng ta tiếp tục và trả về nó. tiếng hoan hô

function smallestCommons[arr] {
let min = Math.min[...arr] let max = Math.max[...arr] let array = []
// Creating a full array of all values in the range for [min; min n % currentValue === 0; let common = false let n = max* [max-1]// Checking whether the first value for n is the lowestCommon Multiple common = array.every[lowestCommon]
//Checking for a true result from the array while [common === false]{
n++ common = array.every[lowestCommon] } return n}
0

Bây giờ mọi người tạm dừng, ăn bánh quy và duỗi chân và chúng ta sẽ đi vào chiều sâu của việc thực hiện điều này trong ruby

Tất cả các bạn đã sẵn sàng để quay lại với nó chưa?

Đi nào

let min = Math.min[...arr]let max = Math.max[...arr]let array = []
0

Điều đó không đáng yêu sao. Ruby làm rất nhiều việc cho chúng ta

Chắc chắn chúng ta vẫn cần tạo một mảng gồm các giá trị xen kẽ giữa max và min [nhưng bây giờ chúng ta chỉ có thể sử dụng toán tử trải rộng rubys]. Tuy nhiên, lần này chúng ta có thể chỉ cần sử dụng phương thức rút gọn và chuyển vào phương thức bội chung nhỏ nhất tuyệt vời mà ruby ​​có dưới dạng khối

Tôi đã trải rộng phương pháp này để dễ đọc, tuy nhiên nếu chúng ta thích chúng ta có thể rút gọn nó xuống một dòng

let min = Math.min[...arr]let max = Math.max[...arr]let array = []
1

Tôi hy vọng điều này đã được hữu ích tất cả

Lần tới tôi nghĩ tôi sẽ tính tổng của tất cả các Số nguyên tố bằng hoặc nhỏ hơn một số đã cho. Nếu bạn muốn thử trong thời gian chờ đợi, hãy tự mình thử

Làm cách nào để tìm LCM của nhiều số trong Javascript?

Ví dụ 1. LCM Sử dụng Vòng lặp while và Câu lệnh if . Trong mỗi lần lặp, Biến min được chia cho cả num1 và num2. Nếu số dư của cả hai số đều bằng 0 thì đó là LCM và lệnh break kết thúc chương trình.

Làm thế nào để tính LCM?

LCM biểu thị thừa số chung nhỏ nhất hoặc bội số của hai hoặc nhiều số nguyên đã cho bất kỳ. Ví dụ, L. C. M của 16 và 20 sẽ là 2 x 2 x 2 x 2 x 5 = 80 , trong đó 80 là bội chung nhỏ nhất của hai số 16 và 20. Bây giờ, nếu chúng ta xét bội số của 16 và 20, chúng ta sẽ có;

Làm cách nào để tính toán HCF trong JavaScript?

Nhập số nguyên đầu tiên. 60 Nhập số nguyên thứ hai. 72 HCF của 60 và 72 là 12. Trong chương trình trên, người dùng được nhắc nhập hai số dương. Vòng lặp for được sử dụng để lặp từ 1 đến các số do người dùng nhập vào. Điều kiện if và toán tử mô đun % được sử dụng để tìm HCF của cả hai số .

Làm cách nào để tìm GCD trong JavaScript?

Bản trình diễn trực tiếp. .
hàm gcd_two_numbers[x, y] {
nếu [[loại x. == 'số']. [loại y. == 'số']]
trả về sai;
x = Toán. cơ bụng[x];
y = Toán. cơ bụng [y];
trong khi[y] {
var t = y;
y = x % y;

Chủ Đề