Giả sử chúng ta có một danh sách các yếu tố được gọi là NUM, chúng ta phải tìm ra giá trị tích cực lớn nhất phân chia từng số nguyên.
Vì vậy, nếu đầu vào giống như nums = [15, 81, 78], thì đầu ra sẽ là 3, vì 3 là số nguyên lớn nhất phân chia tất cả 15, 81 và 78.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước này -
Nếu kích thước của num giống như 1, thì
trả về nums [0]
Div: = gcd của nums [0] và nums [1]]
Nếu kích thước của num giống như 2, thì
Trả lại Div
Đối với tôi trong phạm vi 1 đến kích thước của num - 2, làm
Div: = GCD của Div và Nums [i + 1]
Nếu Div giống như 1, thì
Trả lại Div
Trả lại Div
Đối với tôi trong phạm vi 1 đến kích thước của num - 2, làm
Div: = GCD của Div và Nums [i + 1]
from math import gcd def solve[nums]: if len[nums] == 1: return nums[0] div = gcd[nums[0], nums[1]] if len[nums] == 2: return div for i in range[1, len[nums] - 1]: div = gcd[div, nums[i + 1]] if div == 1: return div return div nums = [15, 81, 78] print[solve[nums]]
Nếu Div giống như 1, thì
[15, 81, 78]
Thí dụ
3
Hãy cho chúng tôi xem các triển khai sau đây để hiểu rõ hơn
- Đầu vào
- Đầu ra
- Cập nhật vào ngày 11 tháng 10 năm 2021 07:26:33
- Câu hỏi và câu trả lời liên quan
- Chương trình tìm HCF [yếu tố chung cao nhất] của 2 số trong C ++
- Chương trình C để tìm Yếu tố chung cao nhất [HCF] và bội số phổ biến nhất [LCM]
- Tìm các yếu tố phổ biến trong danh sách các danh sách trong Python
- Chương trình Python in các yếu tố in phổ biến ở chỉ mục được chỉ định của các yếu tố danh sách
- Chương trình Python để tìm tổng các phần tử trong danh sách
- Chương trình tìm tiền tố chung dài nhất từ danh sách các chuỗi trong Python
- Chương trình tìm độ cao cao nhất của một điểm trong Python
- Tìm tổng các yếu tố trong danh sách trong chương trình Python
- Chương trình tìm mục trùng lặp từ danh sách các yếu tố trong Python
- Tìm các yếu tố riêng biệt phổ biến cho tất cả các hàng của một ma trận trong Python
- Chương trình tìm tổng số các yếu tố không liên kết nhất của một danh sách trong Python
- Chương trình Python để tìm số lần xuất hiện của tất cả các yếu tố trong danh sách được liên kết
25
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi muốn tính toán GCD cho một danh sách các số. Nhưng tôi không biết có gì sai với mã của mình.
A = [12, 24, 27, 30, 36]
def Greatest_Common_Divisor[A]:
for c in A:
while int[c] > 0:
if int[c] > 12:
c = int[c] % 12
else:
return 12 % int[c]
print Greatest_Common_Divisor[A]
Sophros
12.8k8 Huy hiệu vàng42 Huy hiệu bạc65 Huy hiệu Đồng8 gold badges42 silver badges65 bronze badges
Đã hỏi ngày 22 tháng 3 năm 2015 lúc 12:51Mar 22, 2015 at 12:51
3
Đây là đoạn mã mà tôi đã sử dụng:
from fractions import gcd
from functools import reduce
def find_gcd[list]:
x = reduce[gcd, list]
return x
Đã trả lời ngày 13 tháng 6 năm 2018 lúc 7:02Jun 13, 2018 at 7:02
2
Kể từ Python 3.9, Python đã được hỗ trợ tích hợp để tính toán GCD qua danh sách các số.
import math
A = [12, 24, 27, 30, 36]
print[math.gcd[*A]]
Output:
3
Đã trả lời ngày 5 tháng 8 năm 2020 lúc 2:21Aug 5, 2020 at 2:21
BIGBOUNTYBIGBOUNTYbigbounty
15,5K4 Huy hiệu vàng32 Huy hiệu bạc59 Huy hiệu đồng4 gold badges32 silver badges59 bronze badges
def gcd [a,b]:
if [b == 0]:
return a
else:
return gcd [b, a % b]
A = [12, 24, 27, 30, 36]
res = A[0]
for c in A[1::]:
res = gcd[res , c]
print res
Liên kết IdeOne
Đã trả lời ngày 24 tháng 7 năm 2015 lúc 19:42Jul 24, 2015 at 19:42
0
Tôi đã sử dụng đoạn mã này:
def gcd[my_list]:
result = my_list[0]
for x in my_list[1:]:
if result < x:
temp = result
result = x
x = temp
while x != 0:
temp = x
x = result % x
result = temp
return result
Jianxin Gao
2.5072 Huy hiệu vàng15 Huy hiệu bạc31 Huy hiệu Đồng2 gold badges15 silver badges31 bronze badges
Đã trả lời ngày 3 tháng 2 năm 2019 lúc 6:50Feb 3, 2019 at 6:50
Kouroshkouroshkourosh
711 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges
Nếu bạn muốn sử dụng một phương thức hiện có, hãy thử `np.gcd.reduce ':
import numpy as np
A = [12, 24, 27, 30, 36]
print[np.gcd.reduce[A]]
mà trả về
[15, 81, 78]6
Đã trả lời ngày 23 tháng 4 năm 2020 lúc 7:07Apr 23, 2020 at 7:07
uhohuhohuhoh
3,4825 Huy hiệu vàng36 Huy hiệu bạc91 Huy hiệu Đồng5 gold badges36 silver badges91 bronze badges
5
Tôi không rõ tại sao bạn đang sử dụng 12 trong chức năng của mình? Bạn có muốn kiểm tra thuật toán của mình với 12 cụ thể không?
Có chức năng được xây dựng cung cấp một giải pháp tốt [
[15, 81, 78]7] như được tham chiếu trong câu trả lời này
Nếu bạn muốn phát triển cách tiếp cận của riêng mình, bạn có thể làm theo cách này: Sắp xếp danh sách và nhận số lượng danh sách tối thiểu [gọi nó là
[15, 81, 78]8]. Vòng lặp từ 2 đến
[15, 81, 78]8, bạn có thể nhận được ước số chung tuyệt vời trong danh sách của bạn.
Đã trả lời ngày 22 tháng 3 năm 2015 lúc 13:27Mar 22, 2015 at 13:27
[15, 81, 78]0
"Lambda" là một hàm ẩn danh trong đó 'G' được gán với GCD của hai số bất cứ khi nào được gọi.
"Giảm" là một hàm trong mô -đun "functools" được sử dụng để thực hiện một hàm cụ thể cho tất cả các yếu tố trong danh sách. Ở đây giảm [] tính toán GCD của danh sách đầy đủ A bằng cách tính toán GCD của hai yếu tố đầu tiên, sau đó là GCD của phần tử thứ 3 với GCD được tính toán trước đó của hai phần tử đầu tiên, v.v.
Hy vọng điều này làm rõ nghi ngờ của bạn.
Đã trả lời ngày 18 tháng 10 năm 2018 lúc 11:16Oct 18, 2018 at 11:16
2
30 thoát khỏi chức năng. Bên trong một vòng lặp này thường không có ý định.
Đã trả lời ngày 22 tháng 3 năm 2015 lúc 13:02Mar 22, 2015 at 13:02
DanieldanielDaniel
41.3k4 Huy hiệu vàng54 Huy hiệu bạc80 Huy hiệu đồng4 gold badges54 silver badges80 bronze badges
Như tôi thấy mã của bạn sẽ đơn giản đi trong vòng lặp vô hạn. Vì bạn gọi Phương thức Greatest_Common_Divisor đệ quy nhưng không có trường hợp cơ sở. Căn chỉnh in Greatest_Common_Divisor [A] và "Def" trong cùng một cột và vấn đề đó sẽ được giải quyết. Tuy nhiên, những gì mã của bạn làm cho mỗi số AI, phải mất phần còn lại của AI % 12, và sau đó chỉ cần in 12 % [AI % 12] và không có bất kỳ kết nối nào giữa nó và GreatestCommondivisor. Dưới đây là mã đơn giản cho GCD [A, B] mà bạn có thể sử dụng cho toàn bộ mảng:
[15, 81, 78]1
Đã trả lời ngày 22 tháng 3 năm 2015 lúc 21:41Mar 22, 2015 at 21:41
MamukamamukaMamuka
1021 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges
[15, 81, 78]2
Tôi đoán điều này sẽ làm rõ nghi ngờ của bạn.
Đã trả lời ngày 7 tháng 5 năm 2018 lúc 7:37May 7, 2018 at 7:37
Ẩn danhAnonymous
3352 Huy hiệu bạc17 Huy hiệu đồng2 silver badges17 bronze badges
GCD của đầu vào danh sách của người dùng có thể được sử dụng cho bất kỳ số lượng giá trị đầu vào nào.
[15, 81, 78]3
Đã trả lời ngày 24 tháng 7 năm 2019 lúc 17:24Jul 24, 2019 at 17:24
[15, 81, 78]4
Đã trả lời ngày 23 tháng 9 năm 2019 lúc 17:05Sep 23, 2019 at 17:05
Chỉ cần kiểm tra GCD cho phần tử tối thiểu và tối đa trong danh sách:
[15, 81, 78]5
Đã trả lời ngày 7 tháng 4 lúc 11:27Apr 7 at 11:27
3