Khiêu chuyển đáo nội dung

Mô trừ

Duy cơ bách khoa, tự do đích bách khoa toàn thư
Thương sổ() hòaDư sổ() tác viBị trừ sổ() đích hàm sổ thời đích đồ tượng. Tả trắc thịTrừ sổVi chính đích tình huống, hữu trắcTrừ sổVi phụ. Tòng thượng chí hạ phân biệt sử dụng liễu: Hướng linh thủ chỉnh, hướng hạ thủ chỉnh hòaÂu kỉ lí đức trừ pháp.

Mô trừ( hựu xưngMô sổ,Thủ mô thao tác,Thủ mô vận toánĐẳng, anh ngữ:moduloHữu thời dã xưng tác modulus ) đắc đáo đích thị nhất cá sổ trừ dĩ lánh nhất cá sổ đích dư sổ.

Cấp định lưỡng cá chính chỉnh sổ:Bị trừ sổHòaTrừ sổ,amodulon( súc tả vi) đắc đáo đích thị sử dụngÂu kỉ lí đức trừ phápThờiĐích dư sổ. Cử cá lệ tử: Kế toán biểu đạt thức ""Đắc đáo 1, nhân vi( 5 trừ dĩ 2 thương 2 dư 1 ); nhi ""Đắc đáo 0, nhân vi;Chú ý: Như quả sử dụng kế toán khí tố trừ pháp, bất năng chỉnh trừ thời, nhĩ bất hội đắc đáo thương, nhi thị hội đắc đáo nhất cá tiểu sổ, như:.

Tuy nhiên thông thường tình huống hạHòaĐô thị chỉnh sổ, đãn hứa đa kế toán hệ thống duẫn hứa kỳ tha loại hình đích sổ tự thao tác, như: Đối phù điểm sổ thủ mô. Nhất cá chỉnh sổ đốiThủ mô đích kết quả phạm vi vi: 0 đáo(Hằng đẳng vu 0;Tắc thị vị định nghĩa đích, tại biên trình ngữ ngôn lí khả năng hội đạo tríTrừ linhThác ngộ ). Hữu quan khái niệm tạiSổ luậnTrung đích ứng dụng thỉnh tham duyệtMô toán sổ.

ĐươngHoặcVi phụ sổ thời, thông thường đích định nghĩa tựu bất thích dụng liễu, bất đồng đích biên trình ngữ ngôn đối kết quả hữu bất đồng đích xử lý.

Định nghĩa dữ dư sổ đích kế toán

[Biên tập]
Bất đồngTrình thức ngữ ngônHạ chỉnh sổ thủ mô vận toán đích phù hào
Trình thức ngữ ngôn Thao tác phù Kết quả dữ... Đồng phù hào
AutoLISP (rem d n)[1] Bị trừ sổ

[Chú 1]

AWK % Bị trừ sổ
BASIC Mod Vị định nghĩa
C (ISO 1999) %,div Bị trừ sổ[2]
C++ (ISO 2011) %,div Bị trừ sổ
C# % Bị trừ sổ
Clojure mod Trừ sổ
rem Bị trừ sổ
CoffeeScript % Bị trừ sổ
%% Trừ sổ[3]
Dart % Phi phụ
remainder() Bị trừ sổ
Erlang rem Bị trừ sổ
F# % Bị trừ sổ
Fortran mod Bị trừ sổ
modulo Trừ sổ
Go % Bị trừ sổ
Haskell mod Trừ sổ
rem Bị trừ sổ
Julia %,mod,rem Trừ sổ
Kotlin % Bị trừ sổ
Java % Bị trừ sổ
Math.floorMod Trừ sổ
JavaScript % Bị trừ sổ
Lua5 % Trừ sổ
Mathematica Mod[a, b] Trừ sổ
MATLAB mod Trừ sổ
rem Bị trừ sổ
Pascal(ISO-7185 and -10206) mod Phi phụ
Perl % Trừ sổ
PHP % Bị trừ sổ
Prolog(ISO 1995[4]) mod Trừ sổ
rem Bị trừ sổ
Python % Trừ sổ
math.fmod Bị trừ sổ
Racket remainder Bị trừ sổ
R ngữ ngôn %% Trừ sổ
Ruby %, modulo() Trừ sổ
remainder() Bị trừ sổ
Rust % Bị trừ sổ
Scala % Bị trừ sổ
SchemeR6RS[5] mod Phi phụ
mod0 Tối kháo cận 0 đích sổ[5]
SQL (SQL:2012) % Bị trừ sổ
Swift % Bị trừ sổ
Verilog(2001) % Bị trừ sổ
VHDL mod Trừ sổ
rem Bị trừ sổ
Visual Basic Mod Bị trừ sổ
WebAssembly i32.rem_s, i64.rem_s Bị trừ sổ
x86 hối biên(Anh ngữ:x86 assembly language) IDIV Bị trừ sổ
Bất đồngTrình thức ngữ ngônHạ phù điểm sổ thủ mô vận toán đích phù hào
Trình thức ngữ ngôn Thao tác phù Kết quả dữ... Đồng phù hào
C (ISO 1999) fmod Bị trừ sổ
remainder Tối kháo cận 0 đích sổ
C++ (ISO 2011) std::fmod Bị trừ sổ
std::remainder Tối kháo cận 0 đích sổ
C# % Bị trừ sổ
Common Lisp mod Trừ sổ
rem Bị trừ sổ
Dart % Phi phụ
remainder() Bị trừ sổ
F# % Bị trừ sổ
Fortran mod Bị trừ sổ
modulo Trừ sổ
Go math.Mod Bị trừ sổ
Haskell(GHC) Data.Fixed.mod' Trừ sổ
Java % Bị trừ sổ
JavaScript % Bị trừ sổ
Perl6 % Trừ sổ
PHP fmod Bị trừ sổ
Python % Trừ sổ
math.fmod Bị trừ sổ
Ruby %, modulo() Trừ sổ
remainder() Bị trừ sổ
SchemeR6RS flmod Phi phụ
flmod0 Tối kháo cận 0 đích sổ
Swift truncatingRemainder(dividingBy:) Bị trừ sổ

Tại sổ học trung, thủ mô vận toán đích kết quả tựu thịÂu kỉ lí đức trừ phápĐích dư sổ. Đương nhiên dã hữu hứa đa kỳ tha đích định nghĩa phương thức. Kế toán cơ hòa kế toán khí hữu hứa đa chủng biểu kỳ hòa trữ tồn sổ tự đích phương pháp, nhân thử tại bất đồng đích ngạnh kiện hoàn cảnh hạ, bất đồng đích biên trình ngữ ngôn trung, thủ mô vận toán hữu trứ bất đồng đích định nghĩa.

Kỉ hồ sở hữu đích kế toán hệ thống trung,TrừĐắc đáo thươngHòa dư sổQuân mãn túc dĩ hạ thức tử:

1

Nhiên nhi giá dạng tố, đương dư sổ phi 0 thời, dư sổ đích phù hào nhưng nhiên thị hữu kỳ nghĩa đích: Dư sổ phi 0 thời, tha đích phù hào hữu lưỡng chủng tuyển trạch, nhất cá chính, nhất cá phụ.[Chú 2] Thông thường tình huống hạ, tại sổ luận trung tổng thị sử dụng chính dư sổ. Đãn tại biên trình ngữ ngôn trung, dư sổ đích phù hào thủ quyết vu biên trình ngữ ngôn đích loại hình hòa bị trừ sổaHoặc trừ sổĐích phù hào. Tiêu chuẩnPascalHòaALGOL 68Tổng thị sử dụng 0 hoặc chính dư sổ; lánh nhất ta biên trình ngữ ngôn, như C90, đương bị trừ sổHòa trừ sổĐô thị phụ sổ thời, C90 tiêu chuẩn tịnh một hữu tố cụ thể đích quy định, nhi thị lưu cấp biên dịch khí khứ định nghĩa tịnh thật hiện[6]. Tại đại đa sổ hệ thống thượngThời vị định nghĩa đích, tuy nhiên hữu ta hệ thống định nghĩa tha tựu đẳng vu.Canh đa tường tình tham kiến biểu cách.

  • Ngận đa thủ mô đích thật hiện đô sử dụng liễuTiệt đoạn trừ pháp,Thử thời thương do tiệt đoạn hàm sổ định nghĩa định nghĩa,Nhân thử do đẳng thức1Hữu, dư sổHòa bị trừ sổ phù hào nhất trí.Thương hướng linh thủ chỉnh: Kết quả đẳng vu phổ thông trừ pháp sở đắc đích tiểu sổ kháo cận 0 phương hướng đích đệ nhất cá chỉnh sổ.
  • Cao đức nạp[7]Định nghĩa đíchThủ để trừ phápĐích thương doThủ để hàm sổĐịnh nghĩa:.Nhân thử do đẳng thức1Hữu, dư sổHòa trừ sổ phù hào nhất trí.Nhân vi sử dụng liễu thủ để hàm sổ, thương tổng thị hướng hạ thủ chỉnh, tức sử thương dĩ kinh thị phụ sổ.
  • Raymond T. Boute[8]Sử dụng đích âu kỉ lí đắc định nghĩa trung, dư sổ tổng thị phi phụ đích,Giá dữ âu kỉ lí đắc toán pháp thị nhất trí đích.

Tại giá chủng tình huống hạ:

Hoặc giả đẳng giới đích:

Giá lí đíchThịPhù hào hàm sổ,Nhân thử

  • Common Lisp dã định nghĩa liễu tự kỷ đích xá nhập trừ pháp hòa tiến vị trừ pháp, thương phân biệt định nghĩa viHòa.
  • IEEE 754(Anh ngữ:IEEE 754-1985)Định nghĩa liễu nhất cá thủ dư hàm sổ, thương bị định nghĩa vi,Y cưXá nhập ước định(Anh ngữ:IEEE 754-1985#Rounding floating-point numbers)Thủ chỉnh. Nhân thử dư sổ đích phù hào tuyển định viTối tiếp cận 0.

Thường kiến thác ngộ

[Biên tập]

Đương thủ mô đích kết quả dữ bị trừ sổ phù hào tương đồng thời, khả năng hội đạo trí ý tưởng bất đáo đích thác ngộ.

Cử cá lệ tử: Như quả nhu yếu phán đoạn nhất cá chỉnh sổ thị phủ vi kỳ sổ, hữu nhân khả năng hội trắc thí giá cá sổ trừ 2 đích dư sổ thị phủ vi 1:

boolis_odd(intn){
returnn%2==1;
}

Đãn tại nhất cá thủ mô kết quả dữ bị trừ sổ phù hào tương đồng đích biên trình ngữ ngôn lí, giá dạng tố thị thác đích. Nhân vi đương bị trừ sổnThị kỳ sổ thả vi phụ sổ thời,Đắc đáo −1, thử thời hàm sổ phản hồi “Giả”.

Nhất chủng chính xác đích thật hiện thị trắc thí thủ mô kết quả thị phủ vi 0, nhân vi dư sổ vi 0 thời một hữu phù hào đích vấn đề:

boolis_odd(intn){
returnn%2!=0;
}

Hoặc giả khảo lự dư sổ đích phù hào, hữu lưỡng chủng tình huống: Dư sổ khả năng vi 1 hoặc -1.

boolis_odd(intn){
returnn%2==1||n%2==-1;
}

Ký hào

[Biên tập]

Nhất ta kế toán khí hữu thủ mômod()Án nữu, ngận đa biên trình ngữ ngôn lí dã hữu loại tự đích hàm sổ, thông thường tượngmod(a,n)Giá dạng. Hữu ta ngữ ngôn dã chi trì tại biểu đạt thức nội sử dụng "%", "mod" hoặc "Mod" tác vi thủ mô hoặc thủ dư thao tác phù.

a % n

Hoặc

a mod n

Hoặc giả tại nhất ta một hữumod()Hàm sổ đích hoàn cảnh trung sử dụng đẳng giới đích: ( chú ý 'int' sự thật thượng đẳng giới vu tiệt đoạn hàm sổ,Tiến hành liễu hướng 0 thủ chỉnh )

a - (n * int(a/n))

Đẳng giới tính

[Biên tập]

Nhất ta thủ mô thao tác, kinh quá phân giải hòa triển khai khả dĩ đẳng đồng vu kỳ tha sổ học vận toán. Giá tạiMật mã họcĐích chứng minh trung thập phân hữu dụng, lệ như:Địch phỉ - hách nhĩ mạn mật thược giao hoán.

  • Hằng đẳng thức:
    • Đối sở hữu đích chính sổHữu:
    • Như quảThị nhất cáChất sổ,Thả bất viĐíchNhân sổ,Thử thời doPhí mã tiểu định lýHữu:
  • Nghịch vận toán:
    • .
    • Biểu kỳMô phản nguyên tố.Đương thả cận đươngDữHỗ chất thời, đẳng thức tả trắc hữu định nghĩa:.
  • Phân phối luật:
    • ,Phù hào\ThịÂu kỉ lí đức trừ phápTrung đích trừ pháp thao tác phù, vận toán kết quả vi thương
    • .
  • Trừ pháp định nghĩa: Cận đương thức tử hữu trắc hữu định nghĩa thời, tức,Hỗ chất thời hữu:,Kỳ tha tình huống vi vị định nghĩa đích.
  • Thừa pháp nghịch nguyên:.

Tính năng vấn đề

[Biên tập]

Khả dĩ thông quá y thứ kế toán đái dư sổ đích trừ pháp thật hiện thủ mô thao tác. Đặc thù tình huống hạ, như mỗ ta ngạnh kiện thượng, tồn tại canh khoái đích thật hiện. Lệ như: 2 đích n thứ mịch đích mô, khả dĩ thông quáTrục vịDữ vận toánThật hiện:

x % 2n== x & (2n- 1)

Lệ tử, giả địnhxVi chính sổ:

x % 2 == x & 1
x % 4 == x & 3
x % 8 == x & 7

Tại tiến hành vị thao tác bỉ thủ mô thao tác hiệu suất canh cao đích thiết bị hoặc nhuyễn kiện hoàn cảnh trung, dĩ thượng hình thức đích thủ mô vận toán tốc độ canh khoái.[9]

Biên dịch khí khả dĩ tự động thức biệt xuất đối 2 đích n thứ mịch thủ mô đích biểu đạt thức, tự động tương kỳ ưu hóa viexpression & (constant-1).Giá dạng khả dĩ tại kiêm cố hiệu suất đích tình huống hạ tả xuất canh chỉnh khiết đích đại mã. Giá cá ưu hóa tại thủ mô kết quả dữ bị trừ sổ phù hào nhất trí đích ngữ ngôn trung ( bao quát C ngữ ngôn ) bất năng sử dụng, trừ phi bị trừ sổ thị vô phù hào chỉnh sổ. Giá thị nhân vi như quả bị trừ sổ thị phụ sổ, tắc kết quả dã thị phụ sổ, đãnexpression & (constant-1)Tổng thị chính sổ, tiến hành giá dạng đích ưu hóa tựu hội đạo trí thác ngộ, vô phù hào chỉnh sổ tắc một hữu giá cá vấn đề.

Dụng đồ

[Biên tập]
  • Thủ mô vận toán khả dụng vu phán đoạn nhất cá sổ thị phủ năng bị lánh nhất cá sổ chỉnh trừ. Đối 2 thủ mô tức khả phán đoạn chỉnh sổ đích kỳ ngẫu tính; tòng 2 đáoThủ mô tắc khả phán đoạn nhất cá sổ thị phủ vi chất sổ.
  • Tiến chếChi gian đích chuyển hoán.
  • Dụng vu cầu thủ tối đại công ước sổ đíchTriển chuyển tương trừ phápSử dụng thủ mô vận toán.
  • Mật mã học trung đích ứng dụng: Tòng cổ lão đíchKhải tát mật mãĐáo hiện đại thường dụng đíchRSA,Thỏa viên khúc tuyến mật mã,Tha môn đích thật hiện quá trình quân sử dụng liễu thủ mô vận toán.

Tham kiến

[Biên tập]

Cước chú

[Biên tập]
  1. ^Tại Visual LISP IDE lí trắc thí khả tri kết quả dữ bị trừ sổ đồng phù hào. (rem 13 3)=>1; (rem -13 3)=>-1; (rem 13 -3)=>1; (rem -13 -3)=>-1
  2. ^Tòng sổ học thượng giảng, chính hòa phụ chỉ thị mãn túc bất đẳng thức đích vô cùng đa cá giải trung đích lưỡng cá

Tham khảo văn hiến

[Biên tập]
  1. ^AutoCAD 2018 bang trợ: rem (AutoLISP).Autodesk, Inc.[2018-07-12]( trung văn ).
  2. ^ISO/IEC JTC.The ISO C99 Standard (ISO/IEC 9899:TC3 Committee Draft)(PDF).open-std.org: 6.5.5: 94. 2007-09-07[2018-07-12].(Nguyên thủy nội dung(pdf)Tồn đương vu 2018-06-24 )( anh ngữ ).If the quotient a/b is representable, the expression (a/b)*b + a%b shall equal a.
  3. ^jashkenas.CoffeeScript Language Reference - Operators and Aliases.coffeescript.org.[2018-07-12].(Nguyên thủy nội dungTồn đương vu 2018-07-11 )( anh ngữ ).% works just like in JavaScript, while %% provides “dividend dependent modulo”
  4. ^J.P.E. Hodgson.Prolog: The ISO directives, control constructs and builtins..1999-04-12[2018-07-12].(Nguyên thủy nội dungTồn đương vu 2017-12-25 )( anh ngữ ).A conforming processor is required to support the arithmetic operations specified by the following tables. They conform to the ISO/IEC 10967-1 Language Independent Arithmetic standard.
  5. ^5.05.1ROBERT BRUCE FINDLER, JACOB MATTHEWS.Revised6 Report on the Algorithmic Language Scheme.r6rs.org. 2007-09-26[2018-07-12].(Nguyên thủy nội dungTồn đương vu 2018-03-15 )( anh ngữ ).
  6. ^Jones, Derek M.The New C Standard: An Economic and Cultural Commentary(PDF).Addison-Wesley. 2003[2018-07-11].ISBN9780201709179.(Nguyên thủy nội dung(PDF)Tồn đương vu 2018-07-11 )( anh ngữ ).
  7. ^Knuth, Donald. E. The Art of Computer Programming. Addison-Wesley. 1972( anh ngữ ).
  8. ^Boute, Raymond T.The Euclidean definition of the functions div and mod.ACM Transactions on Programming Languages and Systems (ACM Press (New York, NY, USA)). April 1992,14(2): 127–144.doi:10.1145/128861.128862( anh ngữ ).
  9. ^Horvath, Adam.Faster division and modulo operation - the power of two.July 5, 2012. (Nguyên thủy nội dungTồn đương vu 2018-03-05 )( anh ngữ ).