Phương thức reduce() sẽ sử dụng ufunc, trong trường hợp này là hàm lcm(), trên mỗi phần tử và giảm mảng đi một chiều
Thí dụ
Tìm ƯCLN của các giá trị của mảng sau
nhập numpy dưới dạng np
mảng = np. mảng([3, 6, 9])
x = np. lcm. giảm (mảng)
in(x)
Tự mình thử »trả lại. 18 vì đó là bội chung nhỏ nhất của cả ba số (3*6=18, 6*3=18 và 9*2=18)
Trong hướng dẫn sau, chúng ta sẽ tìm hiểu cách tìm Bội số chung nhỏ nhất (LCM) bằng ngôn ngữ lập trình Python
Nhưng trước khi bắt đầu, chúng ta hãy thảo luận ngắn gọn về LCM
LCM. Bội Số Chung Nhỏ Nhất/ Bội Số Chung Nhỏ Nhất
LCM là viết tắt của Bội số chung nhỏ nhất. Đó là một khái niệm về số học và hệ thống số. ƯCLN của hai số nguyên a và b được kí hiệu là ƯCLN (a,b). Đó là số nguyên dương nhỏ nhất chia hết cho cả "a" và "b"
Ví dụ. Ta có hai số nguyên 4 và 6. Cùng LCM tìm hiểu nhé
Bội số của 4 là
Các bội số của 6 là
Các bội số chung của 4 và 6 chỉ đơn giản là các số có trong cả hai danh sách
LCM là bội số chung thấp nhất nên nó là 12
Vì chúng ta đã hiểu khái niệm cơ bản về BCNN, chúng ta hãy xem xét chương trình sau để tìm BCNN của các số nguyên đã cho
Thí dụ
đầu ra
Enter first number: 3 Enter second number: 4 The L.C.M. of 3 and 4 is 12
Giải trình
Chương trình này lưu trữ hai số trong num1 và num2 tương ứng. Những con số này được chuyển đến hàm compute_lcm(). Hàm trả về LCM của hai số
Trong hàm, trước tiên chúng tôi đã xác định số lớn hơn trong hai số vì LCM chỉ có thể lớn hơn hoặc bằng số lớn nhất. Sau đó, chúng tôi sử dụng một vòng lặp vô hạn để đi từ số đó và hơn thế nữa
Trong mỗi lần lặp lại, chúng tôi đã kiểm tra xem cả hai số có chia hết cho số. Nếu vậy, chúng tôi đã lưu số dưới dạng LCM và thoát khỏi vòng lặp. Mặt khác, số được tăng thêm 1 và vòng lặp tiếp tục
Viết chương trình Python tính Bội số chung nhỏ nhất (LCM) của nhiều hơn hai số. Các số nên được lấy từ một danh sách các số nguyên dương nhất định
Từ Wikipedia,
Trong số học và lý thuyết số, bội chung nhỏ nhất, bội chung nhỏ nhất hoặc bội chung nhỏ nhất của hai số nguyên a và b, thường được ký hiệu là lcm(a, b), là số nguyên dương nhỏ nhất chia hết cho cả a và b. Vì phép chia số nguyên cho 0 là không xác định nên định nghĩa này chỉ có nghĩa nếu a và b đều khác 0. Tuy nhiên, một số tác giả định nghĩa lcm(a,0) là 0 với mọi a, đây là kết quả của việc lấy lcm là cận trên nhỏ nhất trong mạng chia hết
Giải pháp mẫu-1
Mã Python
from functools import reduce def test(nums): return reduce(lambda x,y:lcm(x,y),nums) def gcd(a, b): while b: a, b = b, a%b return a def lcm(a, b): return a*b // gcd(a, b) nums = [ 4, 6, 8 ] print("Original list elements:") print(nums) print("LCM of the numbers of the said array of positive integers: ", test(nums)) nums = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] print("\nOriginal list elements:") print(nums) print("LCM of the numbers of the said array of positive integers: ", test(nums)) nums = [ 48, 72, 108 ] print("\nOriginal list elements:") print(nums) print("LCM of the numbers of the said array of positive integers: ", test(nums))Đầu ra mẫu
Original list elements: [4, 6, 8] LCM of the numbers of the said array of positive integers: 24 Original list elements: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] LCM of the numbers of the said array of positive integers: 2520 Original list elements: [48, 72, 108] LCM of the numbers of the said array of positive integers: 432Sơ đồ
Trực quan hóa việc thực thi mã Python
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Dung dịch mẫu-2
Sử dụng funcool. giảm (), toán học. gcd() và lcm(x,y) = x * y / gcd(x,y) trên danh sách đã cho
Mã Python
from functools import reduce from math import gcd def lcm(numbers): return reduce((lambda x, y: int(x * y / gcd(x, y))), numbers) print(lcm([ 4, 6, 8 ])) print(lcm([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])) print(lcm([48, 72, 108]))Đầu ra mẫu
24 2520 432Sơ đồ
Trực quan hóa việc thực thi mã Python
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Trình chỉnh sửa mã Python
Có một cách khác để giải quyết giải pháp này?
Trước. Viết chương trình Python để thay thế cách viết hoa của từng chữ cái trong một chuỗi đã cho và chữ cái đầu tiên của chuỗi đã cho phải là chữ hoa
Kế tiếp. Viết chương trình Python để đảo ngược tất cả các từ có độ dài lẻ
Mức độ khó của bài tập này là gì?
Dễ dàng trung bình khóKiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource
Theo dõi chúng tôi trên Facebook và Twitter để cập nhật thông tin mới nhất.
con trăn. Lời khuyên trong ngày
thư viện thời gian
Thư viện thời gian cung cấp nhiều chức năng và phương pháp liên quan đến thời gian và rất hữu ích khi biết liệu bạn đang phát triển trang web hay ứng dụng và trò chơi hay làm việc với khoa học dữ liệu hay giao dịch trên thị trường tài chính. Thời gian là điều cần thiết trong hầu hết các hoạt động phát triển và thư viện thời gian tiêu chuẩn của Python rất hữu ích cho việc đó