Các câu trả lời khác, đặc biệt là câu trả lời đã chọn đã trả lời rõ ràng câu hỏi này khá tốt. Nhưng tôi muốn trình bày một cách tiếp cận đồ họa cũng có thể dễ hiểu hơn, cùng với mã Python để thực hiện mô đun toán học bình thường trong Python.
Python Modulo cho người giả
Hàm modulo là một hàm định hướng mô tả lượng chúng ta phải di chuyển xa hơn hoặc sau sau khi các bước nhảy toán học mà chúng ta thực hiện trong quá trình phân chia trên trục X của các số vô hạn. Vì vậy, giả sử bạn đang làm 7%3
Vì vậy, theo hướng chuyển tiếp, câu trả lời của bạn sẽ là +1, nhưng theo hướng lạc hậu-
Câu trả lời của bạn sẽ là -2. Cả hai đều là toán học chính xác.mathematically.
Tương tự, bạn cũng sẽ có 2 mô đun cho các số âm. Đối với ví dụ:
def newMod[a,b]:
res = a%b
return res if not res else res-b if a>> -5 % 4
3
>>> 5 % 4
1
Dưới đây là mã Python cho loại nhảy bên trong trong Python:
def newMod[a,b]:
res = a%b
return res if not res else res-b if a>> newMod[-5,4]
-1
>>> newMod[5,4]
1
Nhiều người sẽ phản đối phương pháp nhảy hướng nội, nhưng ý kiến cá nhân của tôi là, phương pháp này tốt hơn !!
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọcmodulo of a negative number is a bit more complex mathematics which is done behind the program of Python. If we don’t understand the mathematics behind the modulo of negative number than it will become a huge blender.
Bàn luận
Lấy modulo của một số âm là một toán học phức tạp hơn một chút, được thực hiện đằng sau chương trình Python. Nếu chúng ta không hiểu toán học đằng sau modulo của số âm hơn thì nó sẽ trở thành một máy xay sinh tố khổng lồ. & NBSP;
-5/4 = 1.25 and math.floor[-1.25] = -2
Toán học đằng sau modulo tiêu cực:Python’s modulo operator [%] always return a number having the same sign as the denominator. What happens behind the scene is that Python applies the distribute law of Modulo operator which is –
[a+b]mod n = [[a mod n]+[b mod n]]mod n
Hãy cùng xem xét một ví dụ, nơi chúng tôi muốn tìm -5mod4, tức là -5%4. Tất cả các bạn phải tự hỏi rằng câu trả lời sẽ theo quy tắc dưới đây - & nbsp;
Nhưng đây không phải là câu trả lời mà chúng tôi nhận được, khi chúng tôi sẽ chạy mã trên, chúng tôi sẽ nhận được câu trả lời là 3. Điều này là do toán tử modulo Python [%] luôn trả về một số có cùng dấu với mẫu số. Điều xảy ra đằng sau hiện trường là Python áp dụng luật phân phối của nhà điều hành modulo là - & nbsp;Để áp dụng python toán học này phá vỡ câu lệnh đã cho là - & nbsp;
Examples:
-5%4 = [-2*4 + 3] % 4 = 3
-5 % 2 = [-3*2 + 1] % 2 = 1
Điều này đã được thực hiện để [-2*4]%4 sẽ đưa ra câu trả lời là 0 [vì chúng tôi luôn nhận được bội số của số chia như số đầu tiên của chúng tôi] và kết quả tổng thể sẽ là 3. Hãy xem thêm các ví dụ để hiểu rõ hơn .
In this example we can see that by using this mathematics, we are able to perform and understand the
negative modulo.
Python3
-3 % 7 = [-1*7 + 4] % 7 = 4 & nbsp; -5 % 2 = [-3*2 + 1] % 2 = 1
Ví dụ #1: & nbsp; Trong ví dụ này, chúng ta có thể thấy rằng bằng cách sử dụng toán học này, chúng ta có thể thực hiện và hiểu modulo âm. & NBSP;
-5/4 = 1.25 and math.floor[-1.25] = -20
-5/4 = 1.25 and math.floor[-1.25] = -21
-5/4 = 1.25 and math.floor[-1.25] = -20
-5/4 = 1.25 and math.floor[-1.25] = -23
222def newMod[a,b]:
res = a%b
return res if not res else res-b if a>> newMod[5,4]
1
Python3
Đầu ra:
Ví dụ #2:
-5/4 = 1.25 and math.floor[-1.25] = -20
-5/4 = 1.25 and math.floor[-1.25] = -21
def newMod[a,b]:
res = a%b
return res if not res else res-b if a newMod[-5,4]
-1
>>> newMod[5,4]
1
6 def newMod[a,b]:
res = a%b
return res if not res else res-b if a> newMod[5,4]
1
222Đầu ra:Ví dụ #2:
6def newMod[a,b]: res = a%b return res if not res else res-b if a newMod[-5,4] -1 >>> newMod[5,4] 1
def newMod[a,b]: res = a%b return res if not res else res-b if a