Son basamağı nasıl hesaplanır $122^{122}$? [çiftleme]
Kullanmaya çalışıyorum $$122^{122} = 2^{122} (\mod 10)$$
Ama MATLAB kullanıyorum $122^{122}=2 (\mod 10)$ ve $2^{122}=4 (\mod 10)$. Neden aynı değiller? Ekran görüntüsü aşağıdaki gibidir:

Yanıtlar
Artık Matlab'a erişimim yok, bu nedenle bu hatayı tam olarak kendi tarafımda yeniden oluşturamıyorum. Octave'i çevrimiçi kullandığımda da benzer bir hata gözlemleniyor :
octave:2> mod(122^122, 10)
ans = 0
Powermod gibi bir işlev kullanmalısınız . İşin püf noktası, hesaplamak istemiyoruz$122^{122}$ açıkça.
Dikkat edin $122^{122}$çok büyük bir sayıdır ve flintmax'ı aşan çift hassasiyetli kayan noktada çalışıyor . Bu değerin üzerinde, çift duyarlıklı format tamsayı hassasiyetine sahip değildir ve tüm tamsayılar tam olarak temsil edilemez.
Cevap gerçekten $4$.
İşte Python sonucu:
>>> 122**122 % 10 # cool, it can be computed
4
>>> pow(122, 122, 10) # preferred.
4
Çince kalan teoremini kullanabilirsiniz. Dan beri$2$ ve $10$ görece asal değil, Euler doğrudan uygulanamaz.
$10=2\cdot5$, ve $2^{122}\equiv0\bmod2$. Biz alırız$\varphi (5)=4\implies2^{122}\equiv2^2\equiv4\bmod5$ve cevap $4$.
$122^{122} \equiv 2^{122} (\text{mod $10$})$
Gibi, $2^5\equiv 2 (\text{mod $10$})$ $\implies 2^{120}\equiv 2^{24} \equiv 2^{4} (\text{mod $10$})$ $\implies 2^{122} \equiv 2^{6} \equiv 4 (\text{mod $10$})$
Son basamağını bulma genel sorununa bakın. $n^m$.
Al $n=10N+h$ nerede $0\le h\le9$ ve $m=4M+k$ nerede $0\le k\le3$.
Basamakların gücü bir noktaya sahiptir $4$ modulo $10$ aşağıdaki yol: $$1\to1\to1\to1\\2\to4\to8\to6\\3\to9\to7\to1\\4\to6\to4\to6\\5\to5\to5\to5\\6\to6\to6\to6\\7\to9\to3\to1\\8\to4\to2\to6\\9\to1\to9\to1$$
Misal: $797^{723}=(10N+7)^{4\cdot180+3}\equiv7^3\pmod{10}=3\pmod{10}$.
Probleminizin cevabını bulmak için bunu uygulayın.
Aslında, $ 122^{122} mod 10 = 4$. Onlar aynı.