Máy Tính Toán Học
Công cụ máy tính mô-đun (Modulo)


Công cụ máy tính mô-đun (Modulo)

Máy tính mô-đun giúp tìm phần còn lại của phép chia hai số dương/âm hữu tỉ/vô tỉ. Bạn cũng có thể tìm hiểu cách tìm mô-đun theo phương pháp thủ công.

Modulo

1

Có lỗi với phép tính của bạn.

Mục lục

  1. Tính toán khi không có máy tính mô đun
    1. Ví dụ
  2. Đồng hồ trình diễn nguyên lý Mô-đun
    1. Ví dụ
  3. Sử dụng Mô-đun (Modulo)
    1. Xác định số chẵn và số lẻ
    2. Chuyển đổi đơn vị tính
    3. Xác định năm nhuận
  4. Trình tạo số ngẫu nhiên
    1. Mật mã
  5. Kết luận

Công cụ máy tính mô-đun (Modulo)

Phép tính Mô-đun (Modulo) là một phương pháp tìm số dư của phép chia. Đặc điểm cụ thể của modulo là nó trả về phần dư dưới dạng số nguyên.

Hãy ví dụ trường hợp bạn có ba đứa con. Bạn mua một hộp kẹo có 20 viên. Bạn muốn chia đều số kẹo cho các con mình một cách công bằng. Và được ăn số kẹo thừa còn lại sau khi chia mà không cần phải cắt hay bẻ nhỏ. Con bạn vẫn đang đi học. Vì vậy, bạn có thể xác định phần thừa còn lại sau khi chia và ăn số kẹo của mình trước khi các con đi học về.

Đây là trường hợp bạn có thể sử dụng toán tử modulo. Nó cũng có thể được biểu thị dưới dạng dấu % hoặc mod. Đối với các phép tính với số lượng nhỏ, bạn có thể thực hiện các phép tính nhẩm trong đầu. Nếu bạn đang làm việc với số lượng lớn, sẽ thuận tiện hơn khi bạn sử dụng máy tính mô-đun này.

Biểu thức có thể được biểu diễn như sau:

Số bị chia = (Thương × Số chia) + Số dư

Trong trường hợp của chúng ta:

  • số bị chia là 20 (tổng số kẹo);
  • số chia là 3 (số trẻ em);
  • thương là 6 (số kẹo cho mỗi trẻ);
  • còn lại là 2 (số kẹo bạn có thể lấy cho mình).

Nếu bạn sử dụng phép toán mô-đun (modulo), bạn có thể viết nó ra dưới dạng sau:

x % y = r

hoặc

x mod y = r

Trong đó x là số bị chia, y là số chia và r là số dư.

Trong trường hợp của chúng ta,

20 % 3 = 2

Tính toán khi không có máy tính mô đun

Hãy lấy một trường hợp cụ thể làm ví dụ.

Ví dụ

Wayan sống ở Bali và đang xây một nhà khách nhỏ với sáu phòng khách cho thuê. Anh ấy sẽ lát gạch phòng tắm. Người hàng xóm của anh, Gede, người đã hoàn thành việc xây dựng khách sạn của mình, đã giảm giá đáng kể cho Wayan để mua số gạch còn lại.

Người hàng xóm đếm được trong kho của mình có 15 hộp, mỗi hộp chứa 4 viên gạch (60 × 60 cm) và hai viên gạch lẻ. Vậy tổng cộng là 62 viên gạch. Và Gede muốn bán tất cả số gạch cùng một lúc.

Bây giờ Wayan cần tính xem anh ấy có thể lát bao nhiêu phòng tắm bằng những viên gạch này. Và có bao nhiêu viên gạch có thể vẫn chưa được sử dụng?

Làm cách nào để tìm mô-đun theo phương pháp thủ công mà không cần bất kỳ máy tính mô-đun nào?

Wayan đo kích thước của một phòng tắm tiêu chuẩn trong nhà khách của mình và nhận ra rằng anh cần khoảng 14 viên gạch cho mỗi phòng.

Hãy thực hiện các phép tính thủ công!

  1. Quyết định số bắt đầu hoặc số bị chia. Trong trường hợp của chúng ta, đó là 62 hoặc số viên gạch mà người hàng xóm có.
  2. Xác định số chia. Đây là 14—số gạch trung bình cho một phòng tắm tiêu chuẩn.
  3. Chia số bị chia cho số chia và làm tròn kết quả thành số nguyên. 62/14 = 4,428571428571429 hay 4. Vậy Wayan có thể sử dụng số gạch đó cho bốn phòng tắm.
  4. Nhân kết quả làm tròn của phép chia với số chia. Và đó là 4 × 14 = 56. Đây sẽ là số gạch cho bốn phòng.
  5. Trừ số bị chia ban đầu cho kết quả nhân này. Đó là 62 - 56 = 6. Điều này khiến Wayan thừa ra sáu viên gạch.

Một cách đơn giản và nhanh hơn, chúng ta có thể viết thao tác này như sau:

62 % 14 = 6

hoặc

62 mod 14 = 6

Wayan quyết định đây là một lựa chọn tốt vì anh nên dành khoảng 10% gạch dự trữ cho công việc ốp lát đề phòng trường hợp cắt xén hoặc lát nhầm. Và anh ấy sẽ mua gạch lát cho hai phòng tắm còn lại tại một cửa hàng xây dựng địa phương.

Một máy tính mod có thể cung cấp kết quả này chỉ trong vài giây.

Đồng hồ trình diễn nguyên lý Mô-đun

Một loại toán học được gọi là "số học mô đun" liên quan đến các cấu trúc tuần hoàn. Cách dễ nhất để biểu diễn điều này là một mặt số có chu kỳ 12. Đối với một nhà toán học, mặt số có mod 12.

Nếu muốn biết có thể chia 251 giờ cho ngày mà không có số dư hay không, bạn có thể áp dụng thao tác

251 mod 24

Kết quả là 11 nên đáp án là không! Chúng tôi chỉ có thể trả lời "có" nếu kết quả là 0.

Ví dụ

Daniel muốn đi xe buýt từ Atlanta tới Miami. Nó khởi hành lúc 1 giờ chiều và quãng đường mất 15 giờ. anh ấy sẽ đến nơi lúc mấy giờ? Đó sẽ là

1 + 15 mod 12

kết quả là 4. Trong trường hợp của anh ấy, sẽ là 4 giờ sáng.

Sử dụng Mô-đun (Modulo)

Xác định số chẵn và số lẻ

Một trong những cách sử dụng cơ bản nhất của toán tử mô đun là xác định xem một số nào đó là chẵn hay lẻ. Điều này có thể thực hiện được vì x % 2 luôn trả về 0 hoặc 1. Các số chẵn luôn trả về 0 vì chúng chia hết cho 2, trong khi các số lẻ luôn trả về số dư là 1.

Trường hợp phổ biến nhất của việc sử dụng modulo trong lập trình là khi bạn in một bảng trong ứng dụng của mình và muốn thay thế các màu trong các hàng. Bạn có thể muốn tô màu chúng là xanh nhạt và xám nhạt, vì vậy bạn sử dụng mô-đun để xem bạn đang ở hàng chẵn hay hàng lẻ.

Chuyển đổi đơn vị tính

Chuyển đổi đơn vị là một ví dụ điển hình về ứng dụng thực tế của phép toán mô đun. Nó thường được sử dụng khi chúng ta muốn chuyển đổi một đơn vị nhỏ hơn, chẳng hạn như phút, inch hoặc cm, sang đơn vị lớn hơn, chẳng hạn như giờ, dặm hoặc km. Số thập phân hoặc phân số không phải lúc nào cũng hữu ích trong những tình huống như vậy.

Ví dụ: nếu chúng ta muốn biết số giờ trong 373 phút, kết quả được biểu thị bằng 6 giờ và 13 phút có thể có giá trị hơn khi biểu diễn 6,2166666666666666667 giờ.

Phép chia tiêu chuẩn (làm tròn đến số nguyên gần nhất) xác định số giờ và phép toán modulo được sử dụng để tính số phút còn lại. Cho dù xử lý thời gian, khoảng cách, áp suất, năng lượng hay lưu trữ dữ liệu, bạn đều có thể sử dụng phương pháp chung này để chuyển đổi đơn vị.

Xác định năm nhuận

Một ví dụ khác về việc sử dụng toán tử mô-đun (modulo) là để xem một năm có phải là năm nhuận hay không.

Năm nhuận là năm dương lịch có thêm một ngày trong lịch dương. Ngày thêm trong năm nhuận đó là ngày 29 tháng 2.

Vào ngày 1 tháng 1 năm 45 trước Công nguyên, nhà độc tài La Mã Gaius Julius Caesar đã giới thiệu lịch được phát triển ở Rome bởi các nhà thiên văn học người Alexandria. Lịch này dựa trên tính toán rằng một năm thiên văn có khoảng 365,25 ngày (365 ngày và 6 giờ). Lịch này được gọi là lịch Julian.

Để cân bằng sự thay đổi sáu giờ, Caesar đã đưa ra một năm nhuận. Trong ba năm liên tiếp, một năm có 365 ngày. Và mỗi năm, bội số của bốn, thêm một ngày được thêm vào tháng Hai.

Tuy nhiên, thời gian trôi qua, hóa ra chỉ quy định này thôi là chưa đủ.

Năm nhiệt đới trung bình (thời gian giữa hai điểm xuân phân) chính xác hơn là khoảng 365 ngày 5 giờ 49 phút. Sự khác biệt giữa năm bình thường và năm dương lịch nhuận (365 ngày và 6 giờ) là khoảng 11 phút. Vì vậy, trong khoảng 128 năm, 11 phút đó có thể cộng lại thành cả một ngày.

Để bù đắp cho những sai sót tích lũy và tránh sự thay đổi tương tự trong tương lai, Giáo hoàng Gregory XIII đã cải cách lịch vào năm 1582. Ông bổ sung thêm các quy định về năm nhuận. Năm nhuận vẫn là bội số của 4, nhưng có ngoại lệ đối với những năm có bội số của 100. Những năm như vậy chỉ là năm nhuận nếu chúng cũng chia hết cho 400.

Quy tắc xác định năm nhuận như sau:

  • Năm nào số đó là bội số của 400 là năm nhuận.
  • Các năm còn lại có tổng là bội số của 100 không phải là năm nhuận (ví dụ các năm 1700, 1800, 1900, 2100, 2200, 2300);
  • Những năm còn lại là bội số của 4 là năm nhuận.
  • Tất cả các năm khác không phải là năm nhuận.

Do đó, các năm 1700, 1800 và 1900 không phải là năm nhuận vì chúng là bội số của 100 chứ không phải bội số của 400. Năm 1600 và 2000 là năm nhuận vì chúng là bội số của 400.

Hãy quay trở lại vấn đề của chúng ta.

Chúng ta biết rằng:

  • Nếu số năm có mod 4 = 0 và số năm mod 100 ≠ 0 thì đó là năm nhuận.
  • Nếu số năm mod 400 = 0 thì là năm nhuận
  • Trong mọi trường hợp khác, đó không phải là năm nhuận.

Với một tập lệnh Python đơn giản, bạn có thể biết một năm có phải là năm nhuận hay không. Nó sẽ trông giống thế này:

year = int(input('Enter year: '))

if (year%4 == 0 and year%100 != 0) or (year%400 == 0) :

	print(year, "is a leap year.")

else:

	print(year, "is not a leap year.")

Các ứng dụng phổ biến của toán tử mô-đun (modulo) trong lập trình bao gồm:

  • xác định xem một số nào đó là chẵn hay lẻ;
  • thực hiện một thao tác cụ thể trên từng mục thứ N trong danh sách;
  • hạn chế số lượng trong phạm vi;
  • xoay qua các tùy chọn hạn chế (mảng tròn);
  • đảo ngược một số;
  • chuyển đổi dữ liệu tuyến tính thành ma trận;
  • xác định xem các mảng có phải là phiên bản xoay của nhau hay không;
  • phân trang.

Trình tạo số ngẫu nhiên

Modulo so khớp thường được sử dụng trong phần cứng máy tính và thiết bị viễn thông để tạo số kiểm soát và lấy số ngẫu nhiên trong phạm vi giới hạn, chẳng hạn như bộ tạo số ngẫu nhiên đồng nhất. Derrick Henry Lemer đề xuất phương pháp đồng dư tuyến tính vào năm 1949.

Phương pháp đồng dư tuyến tính hoạt động theo công thức:

$$X_{n+1} = (a × X_n + c)\mod m$$

Trong đó:

  • m là modulo,
  • a là số nhân,
  • c là số gia, và
  • X₀ là giá trị ban đầu.

Ví dụ: với m = 11, X₀ = 9, a = 9, c = 9, chúng ta nhận được chuỗi số ngẫu nhiên sau:

9, 2, 5, 10, 0, 9, 2, 5, 10, 0, 9

Mật mã

Các nhà mật mã rất thích sử dụng modulo. Bởi vì khi sử dụng với những số thực sự lớn, bạn có thể tạo bằng modulo một thứ được gọi là "hàm một chiều". Những hàm đặc biệt này giúp bạn dễ dàng tính toán một thứ gì đó theo một hướng chứ không phải theo hướng ngược lại.

Nếu 9 là kết quả của phép bình phương, bạn có thể nhanh chóng xác định rằng đầu vào là 3. Bạn có thể tưởng tượng toàn bộ quá trình diễn ra trước mắt mình từ đầu đến cuối. Nếu tôi nói với bạn rằng 9 là kết quả của mod 29, thì sẽ khó hơn để tìm ra cái gì ở đầu vào.

Các nhà mật mã học thích ý tưởng này vì họ có thể sử dụng phép chia với số dư để tạo ra các số nguyên tố khổng lồ nhằm tạo ra các khóa mật mã.

Kết luận

Cho dù bạn đang cố gắng phân bố đều các đồ vật trong hộp lưu trữ, biết một số có chia hết cho một số khác hay chỉ đơn giản là cố gắng tính thời gian, modulo có thể giúp bạn. Trong tất cả các trường hợp này, số dư cũng quan trọng như thương số trong phép chia.

Đôi khi vấn đề trước mắt rất đơn giản và trực quan. Tuy nhiên, tốt hơn hết bạn nên sử dụng công cụ tính mô đun trực tuyến để tìm ra đáp án một cách nhanh chóng.