Update Hướng Dẫn Chứng minh rằng số dư trong phép chia một số trong những nguyên tố cho 30 chỉ trọn vẹn có thể là một trong hoặc là số nguyên tố 2022
Trong điện toán, phép toán modulo là phép toán tìm số dư của phép chia 2 số (đôi lúc được gọi là modulus).
Thương số (q) và số dư (r) theo những hàm của số bị chia (a), bằng phương pháp dùng những thuật toán rất khác nhau
Cho hai số dương, (số bị chia) a và (số chia) n, a modulo n (viết tắt là a mod n) là số dư của phép chia có dư Euclid của a cho n. Ví dụ, biểu thức “5 mod 2” bằng 1 vì 5 chia cho 2 có thương số là 2 là số dư là một trong, trong lúc “9 mod 3” bằng 0 do 9 chia 3 có thương số là 3 và số dư 0; không hề gì trong phép trừ của 9 cho 3 nhân 3. (Lưu ý rằng thực thi phép chia bằng máy tính cầm tay sẽ không còn hiển thị kết quả in như phép toán này; thương số sẽ tiến hành màn biểu diễn dưới dạng phần thập phân.)
Mặc dù thường được thực thi khi a và n đều là số nguyên, nhiều hệ tính toán được cho phép sử dụng những kiểu khác của toán học bằng số. Giới hạn của một modulo nguyên của n là tù 0 đến n − 1. (a mod 1 luôn bằng 0; a mod 0 là không xác lập, trọn vẹn có thể trả về lỗi chia cho số 0 trong nhiều ngôn từ lập trình.) Xem số học mô-đun để tìm những quy ước cũ hơn và tương quan được vận dụng trong lý thuyết số.
Khi hoặc a hoặc n là số âm, định nghĩa cơ bản bị phá vỡ và những ngôn từ lập trình rất khác nhau trong việc định nghĩa những kết quả này.
Toán tử modulo của số nguyên trong nhiều ngôn từ lập trình rất khác nhau
Ngôn ngữ
Toán tử
Kết quả có cùng dấu với
ABAP
MOD
Luôn không âm
ActionScript
%
Số bị chia
Ada
mod
Số chia
rem
Số bị chia
ALGOL 68
÷×, mod
Luôn không âm
AMPL
mod
Số bị chia
APL
|[1]
Số chia
AppleScript
mod
Số bị chia
AutoLISP
(rem d n)
Số dư
AWK
%
Số bị chia
BASIC
Mod
Không xác lập
bash
%
Số bị chia
bc
%
Số bị chia
C (ISO 1990)
%
Định nghĩa tùy thuộc setup
div
ngôn từ lập trình
C++ (ISO 1998)
%
Định nghĩa tùy thuộc setup[1]div
Số bị chia
C (ISO 1999)
%, div
Số bị chia[2]C++ (ISO 2011)
%, div
Số bị chia
C#
%
Số bị chia
Clarion
%
Số bị chia
Clojure
mod
Số chia
rem
Số bị chia
COBOL[2]
FUNCTION MOD
Số chia
CoffeeScript
%
Số bị chia
%%
Số chia[3]ColdFusion
%, MOD
Số bị chia
Common Lisp
mod
Số chia
rem
Số bị chia
Construct 2
%
D
%
Số bị chia[4]Dart
%
Luôn không âm
remainder()
Số bị chia
Eiffel
Erlang
rem
Số bị chia
Euphoria
mod
Số chia
remainder
Số bị chia
F#
%
Số bị chia
FileMaker
Mod
Số chia
Forth
mod
tùy thuộc vào setup
Fortran
mod
Số bị chia
modulo
Số chia
Frink
mod
Số chia
GameMaker: Studio (GML)
mod, %
Số bị chia
GDScript
%
Số bị chia
Go
%
Số bị chia
Haskell
mod
Số chia
rem
Số bị chia
Haxe
%
Số bị chia
Kotlin
%
Số bị chia
J
|[3]
Số chia
Java
%
Số bị chia
Math.floorMod
Số chia
JavaScript
%
Số bị chia
Julia
mod
Số chia
rem
Số bị chia
LabVIEW
mod
Số bị chia
LibreOffice
=MOD()
Số chia
Lua 5
%
Số chia
Lua 4
mod(x,y)
Số chia
Liberty BASIC
MOD
Số bị chia
Mathcad
mod(x,y)
Số chia
Maple
e mod m
Luôn không âm
Mathematica
Mod[a, b]
Số chia
MATLAB
mod
Số chia
rem
Số bị chia
Maxima
mod
Số chia
remainder
Số bị chia
Maya Embedded Language
%
Số bị chia
Microsoft Excel
=MOD()
Số chia
Minitab
MOD
Số chia
mksh
%
Số bị chia
Modula-2
MOD
Số chia
REM
Số bị chia
MUMPS
#
Số chia
Netwide Assembler (NASM, NASMX)
%
toán tử modulo không dấu
%%
toán tử modulo có dấu
Oberon
MOD
Số chia[4]Object Pascal, Delphi
mod
Số bị chia
OCaml
mod
Số bị chia
Occam
Số bị chia
Pascal (ISO-7185 and -10206)
mod
Luôn không âm
Perl
%
Số chia[5]PHP
%
Số bị chia
PIC BASIC Pro
Số bị chia
PL/I
mod
Số chia (ANSI PL/I)
PowerShell
%
Số bị chia
Progress
modulo
Số bị chia
Prolog (ISO 1995)
mod
Số chia
rem
Số bị chia
PureBasic
%,Mod(x,y)
Số bị chia
Python
%
Số chia
math.fmod
Số bị chia
Racket
remainder
Số bị chia
RealBasic
MOD
Số bị chia
R
%%
Số chia
Rexx
//
Số bị chia
RPG
%REM
Số bị chia
Ruby
%, modulo()
Số chia
remainder()
Số bị chia
Rust
%
Số bị chia
Scala
%
Số bị chia
Scheme
modulo
Số chia
remainder
Số bị chia
Scheme R6RS
mod
Luôn không âm[5]mod0
Nearest to zero[5]Seed7
mod
Số chia
rem
Số bị chia
SenseTalk
modulo
Số chia
rem
Số bị chia
Smalltalk
Số chia
rem:
Số bị chia
Spin
//
Số chia
SQL (SQL:1999)
mod(x,y)
Số bị chia
SQL (SQL:2012)
%
Số bị chia
Standard ML
mod
Số chia
Int.rem
Số bị chia
Stata
mod(x,y)
Luôn không âm
Swift
%
Số bị chia
Tcl
%
Số chia
Torque
%
Số bị chia
Turing
mod
Số chia
Verilog (2001)
%
Số bị chia
VHDL
mod
Số chia
rem
Số bị chia
VimL
%
Số bị chia
Visual Basic
Mod
Số bị chia
x86 assembly
IDIV
Số bị chia
XBase++
%
Số bị chia
Mod()
Số chia
Z3 theorem prover
div, mod
Luôn không âm
Toán tử modulo của số chấm động trong nhiều ngôn từ lập trình
Ngôn ngữ
Toán tử
Kết quả có cùng dấu với
ABAP
MOD
Luôn không âm
C (ISO 1990)
fmod
Số bị chia[6]C (ISO 1999)
fmod
Số bị chia
remainder
Gần với số 0
C++ (ISO 1998)
std::fmod
Số bị chia
C++ (ISO 2011)
std::fmod
Số bị chia
std::remainder
Gần với số 0
C#
%
Số bị chia
Common Lisp
mod
Số chia
rem
Số bị chia
D
%
Số bị chia
Dart
%
Luôn không âm
remainder()
Số bị chia
F#
%
Số bị chia
Fortran
mod
Số bị chia
modulo
Số chia
Go
math.Mod
Số bị chia
Haskell (GHC)
Data.Fixed.mod’
Số chia
Java
%
Số bị chia
JavaScript
%
Số bị chia
LabVIEW
mod
Số bị chia
Microsoft Excel
=MOD()
Số chia
OCaml
mod_float
Số bị chia
Perl
POSIX::fmod
Số bị chia
Perl6
%
Số chia
PHP
fmod
Số bị chia
Python
%
Số chia
math.fmod
Số bị chia
Rexx
//
Số bị chia
Ruby
%, modulo()
Số chia
remainder()
Số bị chia
Scheme R6RS
flmod
Luôn không âm
flmod0
Gần với số 0
Standard ML
Real.rem
Số bị chia
Swift
truncatingRemainder(dividingBy:)
Số bị chia
XBase++
%
Số bị chia
Mod()
Số chia
Trong toán học, kết quả của phép toán modulo là số dư của phép chia có dư. Tuy vậy những quy ước khác vẫn tồn tại. Máy vi tính và máy tính có nhiều cách thức rất khác nhau để tàng trữ và đại diện thay mặt thay mặt cho những số; do đó định nghĩa của chúng về phép toán modulo tùy từng ngôn từ lập trình hoặc phần cứng máy tính phía dưới cơ bản.
Trong hầu hết những khối mạng lưới hệ thống máy tính, thương số q và số dư r của phép chia a cho n thỏa mãn nhu cầu
q
∈
Z
a
=
n
q
+
r
|
r
|
<
|
n
|
displaystyle endaligned
(1)
Tuy nhiên, vẫn còn đấy sự nhập nhằng về dấu nếu số dư khác không: hai lựa chọn trọn vẹn có thể cho số dư xẩy ra, một âm và một dương, và hai lựa chọn cho thương số xẩy ra. Trong lý thuyết số, thường thì số dư dương luôn luôn được chọn, nhưng lựa chọn của những ngôn từ lập trình tùy thuộc vào ngôn từ và dấu của a hoặc n.[6] Ngôn ngữ Pascal và ALGOL 68 tiêu chuẩn chọn số dư dương (hoặc 0) kể cả khi số chia là những số âm, riêng với một vài ngôn từ lập trình như C90 thì dấu tùy thuộc vào setup khi hoặc n hoặc a là số âm. Xem bảng để biết rõ ràng. a modulo 0 là không xác lập trong hầu hết những khối mạng lưới hệ thống, tuy nhiên một số trong những khối mạng lưới hệ thống định nghĩa là a.
- Nhiều setup sử dụng phép chia rút gọn mà trong số đó thương số được định nghĩa bởi hàm rút gọn q = trunc(a/n) do đó theo phương trình (1) số dư sẽ có được cùng dấu với số bị chia. Thương số được làm tròn về số không: bằng số nguyên thứ nhất có phần hướng tới không của thương số hữu tỉ.
r
=
a
−
n
trunc
(
a
n)
displaystyle r=a-noperatorname trunc left(frac anright)
- Donald Knuth[7] mô tả phép chia sàn trong số đó thương số được định nghĩa bởi hàm floor q = ⌊a/n⌋, do đó theo phương trình (1) số dư sẽ có được cùng dấu với số chia. Do hàm floor, thương số luôn luôn được làm tròn xuống kể cả khi nó là số âm.
r
=
a
−
n⌊
a
n⌋
displaystyle r=a-nleftlfloor frac anrightrfloor
- Raymond T. Boute[8] mô tả định nghĩa phép chia có dư trong số đó số dư luôn không âm, 0 ≤ r, phù phù thích hợp với giải thuật phép chia có dư. Trong số đó,
n
>
0
⇒
q
=⌊
a
n⌋
displaystyle nvàgt;0Rightarrow q=leftlfloor frac anrightrfloor
n
<
0
⇒
q
=⌈
a
n⌉
displaystyle nvàlt;0Rightarrow q=leftlceil frac anrightrceil
hoặc tương tự
q
=
sgn
(
n
)⌊
a
|
n
|⌋
displaystyle q=operatorname sgn(n)leftlfloor frac aleftrightrfloor
với sgn là hàm sign, do đó
r
=
a
−|
n
|
⌊
a
|
n
|⌋
leftlfloor frac anrightrightrfloor
- Ngôn ngữ Common Lisp cũng định nghĩa phép phân thành tròn và phép chia trần, trong số đó thương số cho bởi q = round(a/n) và q = ⌈a/n⌉ tương ứng.
- IEEE 754 định nghĩa hàm số dư trong số đó thương số là a/n được làm tròn nhờ vào quy ước làm tròn đến số sớm nhất. Do vậy, dấu của số dư được chọn là gần với số 0 nhất.
Theo mô tả của Leijen,
Boute argues that Euclidean division is superior to the other ones in terms of regularity and useful mathematical properties, although floored division, promoted by Knuth, is also a good definition. Despite its widespread use, truncated division is shown to be inferior to the other definitions.
(Tạm dịch: Boute lập luận rằng phép chia có dư là vượt trội so với những phép chia khác về tính chất đều đặn và những thuộc tính toán học hữu ích, mặc dầu với phép chia sàn, được Knuth ủng hộ, cũng là một định nghĩa tốt. Tuy được sử dụng rộng tự do, phép chia rút gọn được chứng tỏ kém hơn những định nghĩa khác.)
— Daan Leijen, Division and Modulus for Computer Scientists[9]
Tuy nhiên, Boute triệu tập vào những tính chất của chính phép toán modulo và không nhìn nhận thực sự là phép chia rút gọn (tiếng Anh: truncated division) đã cho toàn bộ chúng ta biết sự đối xứng của (-a) div n = -(a div n) và a div (-n) = -(a div n), mà cũng tương tự như phép chia thường thì. Bởi vì cả hai phép chia sàn và phép chia có dư đều không còn tính đối xứng này, phán đoán của Boute tối thiểu là không toàn vẹn và tổng thể.[cần dẫn nguồn]
Bài viết hay đoạn này trọn vẹn có thể chứa nghiên cứu và phân tích không được công bố. Xin hãy cải tổ nội dung bài viết bằng phương pháp xác minh những xác lập và thêm vào những chú thích tìm hiểu thêm. Những xác lập chứa những nghiên cứu và phân tích chưa công bố cần phải vô hiệu. (Tháng một năm 2018)
Nếu kết quả của phép chia modulo có dấu của số bị chia thì sẽ dẫn đến những sai lầm không mong muốn đáng ngạc nhiên.
Ví dụ, để kiểm tra tính lẻ của một số trong những nguyên, ta trọn vẹn có thể kiểm tra số dư khi chia cho có bằng 1:
bool is_odd(int n)
return n % 2 == 1;
Khi ngôn từ lập trình có số dư có dấu của số bị chia, việc kiểm tra sẽ sai, do khi n (số bị chia) là số âm lẻ, n mod 2 trả về −1, và hàm trả về false.
Có thể sửa lại sai lầm không mong muốn đó bằng phương pháp kiểm tra rằng kết quả khác 0 (do số dư bằng 0 được xem xét như nhau bất kể dấu):
bool is_odd(int n)
return n % 2 != 0;
Hay là, bằng việc hiểu trước rằng với bất kỳ số lẻ nào, số dư modulo trọn vẹn có thể hoặc bằng 1 hoặc −1:
bool is_odd(int n)
Một số máy tính cầm tay có nút của hàm mod(), và nhiều ngôn từ lập trình khác có hàm tương tự, màn biểu diễn cho mod(a, n). Một vài ngôn từ tương hỗ những biễu thức mà dùng “%”, “mod”, hoặc “Mod” là toán tử modulo hoặc toán tử lấy số dư, ví dụ nổi bật
a % n
hoặc
a mod n
hoặc tương tự cho môi trường tự nhiên vạn vật thiên nhiên thiếu hàm mod() (để ý quan tâm rằng kiểu ‘int’ vốn đã sinh ra giá trị rút gọn a/n)
a – (n * int(a/n))
Phép toán modulo trọn vẹn có thể được setup sao cho từng lần phép chia với số dư được xem. Đôi với nhu yếu đặc biệt quan trọng, trên vài phần cứng, tồn tại những phép toán tương tự nhưng nhanh hơn. Ví dụ, modulo cho lũy thừa của 2 trọn vẹn có thể biễu diễn tương tự bởi phép toán bitwise AND:
x % 2n == x & (2n – 1)
Ví dụ (giả sử x là số nguyên dương):
x % 2 == x & 1
x % 4 == x & 3
x % 8 == x & 7
Trong những thiết bị và ứng dụng mà setup toán tử bitwise hiệu suất cao hơn toán tử modulo, những dạng thay thế này trọn vẹn có thể dẫn đến tính toán nhanh hơn.[10]
Các trình biên dịch tối ưu hóa trọn vẹn có thể nhận diện những biểu thức có dạng expression % constant trong số đó constant là lũy thừa của 2 và tự động hóa setup chúng thành expression & (constant-1). Điều này được cho phép viết mã rõ ràng hơn mà không tác động đến hiệu suất. Cách tối ưu hóa này sẽ không còn vận dụng cho những ngôn từ mà kết quả của phép toán modulo có cùng dẫu với số bị chia (gồm có C), trừ phi số bị chia là kiểu số nguyên không dấu. Bởi vì nếu số bị chia là số âm thì modulo sẽ là số âm trong lúc expression & (constant-1) sẽ luôn dương.
Một số phép toán modulo trọn vẹn có thể được mở rộng tương tự sang những phép toán toán học khác. Điều này còn có tính hữu dụng trong những chứng tỏ mật mã học, ví dụ nổi bật trao đổi khóa Diffie-Hellman.
- Phần tử cty:
- (a mod n) mod n = a mod n.
- nx mod n = 0 với mọi số nguyên dương x.
- Nếu p. là số nguyên tố không phải là ước số của b, thì abp−1 mod p. = a mod p., dựa theo định lý nhỏ Fermat.
- Phần tử hòn đảo:
- [(−a mod n) + (a mod n)] mod n = 0.
- b−1 mod n kí hiệu thành phần hòn đảo modular, được định nghĩa khi và chỉ khi b và n là những số nguyên tố cùng nhau, khi vế trái xác lập: [(b−1 mod n)(b mod n)] mod n = 1.
- Tính phân phối:
- (a + b) mod n = [(a mod n) + (b mod n)] mod n.
- ab mod n = [(a mod n)(b mod n)] mod n.
- Phép chia (định nghĩa): a/b mod n = [(a mod n)(b−1 mod n)] mod n, khi vế phải xác lập (là lúc b và math|n}} là những số nguyên tố cùng nhau). Các trường hợp còn sót lại là không xác lập.
- Phép nhân nghịch hòn đảo: [(ab mod n)(b−1 mod n)] mod n = a mod n.
- Modulo (Chống nhầm lẫn) và modulo (biệt ngữ) – nhiều cách thức sử dụng từ modulo, toàn bộ đều phát sinh từ cuốn sách Nhập môn số học mô đun (tựa Anh:introduction of modular arithmetic) của Carl F. Gauss năm 1801.
- Lũy thừa Modular
- ^ Perl sử dụng toán tử modulo số học mà độc lập với máy tính. Để biết thêm ví dụ và những ngoại lệ, xem tài liệu Perl về toán tử nhân.[11]
- ^ Trên phương diện toán học, hai lựa chọn này là hai trong số vô số lựa chọn có sẵn trong [[remainder#The inequality satisfied by the remainder|bất đẳng thức thỏa mãn bằng một số dư]]
- ^ Số chia phải là dương, nếu không không xác lập.
- ^ Như được cài dặt trong ACUCOBOL, Micro Focus COBOL, và có thẻ là những ngôn từ khác
- ^ ^ Trật tự tham số hòn đảo ngược, ví dụ, α|ω computes
ω
mod
α
displaystyle omega bmod alpha
, số dư khi chia ω cho α.
Review Chứng minh rằng số dư trong phép chia một số trong những nguyên tố cho 30 chỉ trọn vẹn có thể là một trong hoặc là số nguyên tố ?
Bạn vừa tìm hiểu thêm nội dung bài viết Với Một số hướng dẫn một cách rõ ràng hơn về Video Chứng minh rằng số dư trong phép chia một số trong những nguyên tố cho 30 chỉ trọn vẹn có thể là một trong hoặc là số nguyên tố mới nhất , Bạn đang tìm một số trong những Chia SẻLink Download Chứng minh rằng số dư trong phép chia một số trong những nguyên tố cho 30 chỉ trọn vẹn có thể là một trong hoặc là số nguyên tố Free.
Hỏi đáp thắc mắc về Chứng minh rằng số dư trong phép chia một số trong những nguyên tố cho 30 chỉ trọn vẹn có thể là một trong hoặc là số nguyên tố
Nếu sau khoản thời hạn đọc nội dung bài viết Chứng minh rằng số dư trong phép chia một số trong những nguyên tố cho 30 chỉ trọn vẹn có thể là một trong hoặc là số nguyên tố vẫn chưa hiểu thì trọn vẹn có thể lại Comments ở cuối bài để Mình lý giải và hướng dẫn lại nha
#Chứng #minh #rằng #số #dư #trong #phép #chia #một #số #nguyên #tố #cho #chỉ #có #thể #là #hoặc #là #số #nguyên #tố