Hướng dẫn remainder of negative number python - phần còn lại của python số âm

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

Hướng dẫn remainder of negative number python - phần còn lại của python số âm

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-

Hướng dẫn remainder of negative number python - phần còn lại của python số âm

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<0 else res
0, có thể dẫn đến cả -1 hoặc +2 như được hiển thị -

Hướng dẫn remainder of negative number python - phần còn lại của python số âm

Hướng về phía trước


Hướng dẫn remainder of negative number python - phần còn lại của python số âm

Hướng lạc hậu


Trong toán học, chúng tôi chọn các bước nhảy hướng nội, tức là hướng về phía trước cho một số dương và hướng lùi cho các số âm.

Nhưng trong Python, chúng tôi có một hướng tiến cho tất cả các hoạt động modulo tích cực. Do đó, sự nhầm lẫn của bạn -

>>> -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<0 else res

Mà sẽ cho -

>>> 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

  • Đọc
  • Bàn luận
  • 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.
     

    Toán học đằng sau modulo tiêu cực:

    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;

    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2

    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;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

    Để áp dụng python toán học này phá vỡ câu lệnh đã cho là - & nbsp;

    -5%4 = (-2*4 + 3) % 4 = 3

    Đ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 .

    Examples:

    -3 % 7 = (-1*7 + 4) % 7 = 4 & nbsp; -5 % 2 = (-3*2 + 1) % 2 = 1
    -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; 
    In this example we can see that by using this mathematics, we are able to perform and understand the negative modulo.
     

    Python3

    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    1
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    2
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    3
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    4
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    5
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    6

    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    7
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    2
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    9
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    3
    >>> newMod(-5,4)
    -1
    
    >>> newMod(5,4)
    1
    
    1
    >>> newMod(-5,4)
    -1
    
    >>> newMod(5,4)
    1
    
    222

    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    0
    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    1

    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    0
    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    3

    Đầu ra:

    3
    3

    Ví dụ #2:

    Python3

    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    1
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    2
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    3
    >>> 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<0 else res
    
    5
    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    9

    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    7
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    2
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    3
    (a+b)mod n = [(a mod n)+(b mod n)]mod n
    3
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    5
    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    6

    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    0
    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    1

    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    0
    -5/4 = 1.25 
    and
    math.floor(-1.25) = -2
    3

    Đầu ra:

    4
    0

    Bạn đã bao giờ tự hỏi làm thế nào nó hoạt động?

    Ảnh của tác giả.

    Đây là điều tôi học được gần đây và nghĩ rằng đáng để chia sẻ cho rằng nó khá ngạc nhiên khi tôi và đó là một sự thật siêu hữu ích để học hỏi. Làm thế nào để Python xử lý hoạt động modulo với số âm? Vì vậy, hãy để giữ cho nó ngắn gọn và ngọt ngào và đi thẳng vào nó.

    Biểu tượng

    def newMod(a,b):
        res = a%b
        return res if not res else res-b if a<0 else res
    
    5 trong Python được gọi là toán tử modulo. Nó trả về phần còn lại của việc chia toán hạng tay trái cho toán hạng bên phải. Nó được sử dụng để có được phần còn lại của một vấn đề phân chia. Tiếtfreecodecamp

    Cú pháp cơ bản là:

    • A % B = r

    Trong ví dụ trước, A được chia cho B và R (nghĩa là phần còn lại) được trả về. Hãy cùng xem một ví dụ với các số ngay bây giờ:

    • 7 % 2 = 1

    Kết quả của ví dụ trước là 1. 2 đi vào 7 ba lần và còn lại 1 lần. Theo cách tương tự, nếu chúng ta chọn hai số trong đó b> a, chúng ta sẽ nhận được những điều sau:

    • 3 % 4 = 3

    Điều này sẽ dẫn đến 3 vì 4 không chuyển sang 3 bất cứ lúc nào, vì vậy 3 ban đầu vẫn còn.

    Anh chị em của toán tử modulo được gọi là hoạt động phân chia số nguyên (

    -5%4 = (-2*4 + 3) % 4 = 3
    1), trong đó phần phân số (tức là phần còn lại) bị loại bỏ. Lấy ví dụ sau:

    • 5 // 2 = 2

    Đối với những con số tích cực, không có gì bất ngờ. Tuy nhiên, nếu một trong các toán hạng là âm, kết quả cũng sẽ được phát triển (nghĩa là làm tròn từ 0 về phía vô cùng âm), trả lại số nguyên lớn nhất nhỏ hơn hoặc bằng x. Ví dụ:

    • -5 // 2 = -3

    Bây giờ, có một số cách thực hiện hoạt động này. Không giống như C hoặc C ++, toán tử modulo của Python luôn trả về một số có cùng dấu với mẫu số (chia) và do đó phương trình chạy ở mặt sau sẽ như sau:

    • mod = a - math.floor (a/b) * cơ sở

    Ví dụ: làm việc với một trong những ví dụ trước đây của chúng tôi, chúng tôi đã nhận được:

    • mod = 7 - math.floor (7/2) * 2
    • mod = 7 trận3*2 = 1

    Và logic tổng thể hoạt động theo các cơ sở sau:

    • a/b = q với phần còn lại r
    • Đó là: b*q + r = a và 0

    Bây giờ, nếu chúng ta muốn mối quan hệ này mở rộng đến các số âm, có một vài cách xử lý trường hợp góc này. Theo Wikipedia, trong lý thuyết số toán học, các nhà toán học thích bám vào sàn đối với vô cùng tiêu cực như trong ví dụ sau:

    • -500/27 = -18,51
    • math.floor (-500/27) = -19

    Python theo cùng một logic. Tại sao? Theo Guido Van Rossum, người tạo ra Python, tiêu chí này có một số ứng dụng thú vị. Ví dụ, xem xét việc lấy dấu thời gian POSIX (vài giây kể từ đầu năm 1970) và biến nó thành thời gian trong ngày. Vì có 24*3600 = 86.400 giây trong một ngày, tính toán này chỉ đơn giản là T % 86.400. Nhưng nếu chúng ta thể hiện thời gian trước năm 1970 bằng cách sử dụng các số âm, các tiêu chí khác được sử dụng sẽ cho kết quả vô nghĩa, trong khi sử dụng quy tắc sàn hoạt động tốt.

    Cuối cùng, hãy tính đến những điều sau khi làm việc với số âm:

    • Nếu a <0 thì 0
    • Python theo cùng một logic. Tại sao? Theo Guido Van Rossum, người tạo ra Python, tiêu chí này có một số ứng dụng thú vị. Ví dụ, xem xét việc lấy dấu thời gian POSIX (vài giây kể từ đầu năm 1970) và biến nó thành thời gian trong ngày. Vì có 24*3600 = 86.400 giây trong một ngày, tính toán này chỉ đơn giản là T % 86.400. Nhưng nếu chúng ta thể hiện thời gian trước năm 1970 bằng cách sử dụng các số âm, các tiêu chí khác được sử dụng sẽ cho kết quả vô nghĩa, trong khi sử dụng quy tắc sàn hoạt động tốt.

    Cuối cùng, hãy để xem một ví dụ nhanh cho A = -500 và B = 12:

    • -500/12 = -41,67
    • -500 % 12 = 4
    • -500 // 12 = -42

    Sau đó, chúng ta có thể kiểm tra B*Q + R = A:

    • 12 * -42 + 4 = -500

    Để kết thúc bài viết này, hãy để Lừa xem một ứng dụng thú vị của toán tử modulo với số âm: chuyển đổi một giờ được viết trong đồng hồ 24 giờ thành đồng hồ 12 giờ. Thách thức có vẻ dễ dàng, phải không? Ví dụ, 23%2 sẽ cho chúng ta 11 và 15%12 sẽ cho chúng ta 3 chính xác những gì chúng ta muốn! Bây giờ, cốt truyện dày lên khi chúng tôi đạt được số 12 vì 12%12 sẽ cho 0, tức là nửa đêm và không trưa.

    Giải pháp ở đây là sử dụng toán tử modulo với số âm. Ví dụ, -22%12 sẽ cho chúng ta 2 và -19/12 sẽ cho chúng ta 5. Theo nguyên tắc, loại hoạt động này sẽ luôn cung cấp cho chúng ta bao nhiêu đơn vị chúng ta còn lại cho đến bội số tiếp theo của mẫu số của chúng ta. Trong ví dụ đầu tiên của chúng tôi, chúng tôi thiếu hai giờ cho đến 12x2 và theo cách tương tự, -34%12 cũng sẽ cho chúng tôi 2 vì chúng tôi sẽ còn hai giờ cho đến 12x3.

    Vì vậy, trở lại với thử thách ban đầu của chúng tôi là chuyển đổi một giờ được viết trong đồng hồ 24 giờ thành đồng hồ 12 giờ, chúng tôi có thể viết như sau:

    def convert24to12(hour):return 12 — ((- hour) % 12)

    Đó là tất cả cho ngày hôm nay. Don Tiết quên xem một số câu chuyện khác của tôi về chương trình tốt hơn:

    Và nếu bạn muốn nhận được các bài viết mới nhất của tôi trực tiếp trên email của bạn, chỉ cần đăng ký nhận bản tin của tôi :). Hẹn gặp bạn xung quanh, và cảm ơn vì đã đọc! Cảm ơn vì đã đọc!f you want to receive my latest articles directly on your email, just subscribe to my newsletter :). See you around, and thanks for reading! Thanks for reading!

    Làm thế nào để bạn tìm thấy phần còn lại của một số âm trong Python?

    Giải pháp ở đây là sử dụng toán tử modulo với số âm. Ví dụ, -22%12 sẽ cho chúng ta 2 và -19/12 sẽ cho chúng ta 5.using the modulo operator with negative numbers. For example, -22%12 will give us 2 and -19/12 will give us 5.

    Bạn có thể modulo một số âm?

    Mô -đun của một số âm được tìm thấy bằng cách bỏ qua dấu trừ.Mô -đun của một số được biểu thị bằng cách viết các đường thẳng đứng xung quanh số.Cũng lưu ý rằng mô đun của một số âm có thể được tìm thấy bằng cách nhân nó với −1 vì, ví dụ, - ( - 8) = 8.. The modulus of a number is denoted by writing vertical lines around the number. Note also that the modulus of a negative number can be found by multiplying it by −1 since, for example, −(−8) = 8.

    Python có hoạt động với số âm không?

    Trong Python, các số dương có thể được thay đổi thành số âm với sự trợ giúp của phương thức được xây dựng được cung cấp trong thư viện Python có tên ABS ().Khi ABS () được sử dụng, nó chuyển đổi số âm thành dương.Tuy nhiên, khi -abs () được sử dụng, thì một số dương có thể được thay đổi thành số âm.positive numbers can be changed to negative numbers with the help of the in-built method provided in the Python library called abs (). When abs () is used, it converts negative numbers to positive. However, when -abs () is used, then a positive number can be changed to a negative number.

    Làm thế nào để bạn tìm thấy phần còn lại của một số trong Python?

    Biểu tượng % trong Python được gọi là toán tử modulo.Nó trả về phần còn lại của việc chia toán hạng tay trái cho toán hạng bên phải.Nó được sử dụng để có được phần còn lại của một vấn đề phân chia.Toán tử modulo được coi là một hoạt động số học, cùng với +, -, /, *, **, //.. It returns the remainder of dividing the left hand operand by right hand operand. It's used to get the remainder of a division problem. The modulo operator is considered an arithmetic operation, along with + , - , / , * , ** , // .