👤
a fost răspuns

2^255 am nevoie va rog mult urgent.

Răspuns :

► Daca cerinta este determinarea valorii expresiei [tex]2^{255}[/tex] (ceea ce e improbabil deoarece e un numar absolut astronomic cu 77 de cifre) atunci raspunsul este  57896044618658097711785492504343953926634992332820282019728792003956564819968

Determinarea numarului in baza 10 folosind un program C++/Python/Java  (nu ai precizat limbajul de programare, te rog specifica in comentariu daca asta iti trebuie) e o bataie de cap suplimentara, numarul NU incape in niciuna din tipurile de date predefinite. Aflarea numarului in baza 2 e foarte simpla, afisezi un 1 urmat de 255 de zerouri.

Sau in notatie stiintifica 5.7896045e+76 (aproximativ [tex]5.7896045*10^{76}[/tex])

Stiai ca ....

  • daca mai inmultesti numarul acesta cu 2 inca odata si obtii numarul de valori diferite care pot fi folosite intr-un algoritm de criptare standard folosit in practica, "military grade encryption" (algoritm AES-256)

► Daca se cere ultima cifra a lui [tex]2^{255}[/tex], cerinta mult mai decenta pentru scoala/liceu atunci stiind ca

[tex]U(2^{4k})=6\\U(2^{4k+1})=2\\U(2^{4k+2})=4\\U(2^{4k+3})=8\\[/tex]

Si ca 255 = 63*4 + 3, rezulta ca ultima cifra a lui [tex]2^{255}[/tex] este 8.

Daca ai nevoie de mai mult de ultima cifra (sau ultima cifra in alta baza) poti folosi teorema Fermat-Euler.

► Daca vrei sa afli 2 XOR 255 (simbolul ^ e operatorul XOR pe biti in multe limbaje de programare) atunci :

255 se scrie ca 11111111 in baza 2 pe 8 biti

2 se scrie ca 00000010 in baza 2 pe 8 biti

11111111 ^ 00000010 = 11111101, numar care inseamna 253 in baza 10.

Amintim regulile XOR :

0 XOR 0 => 0

1 XOR 0 => 1

0 XOR 1 => 1

1 XOR 1 => 0