Chinesischer Restsatz
Wenn häufig beliebige große Ganzzahlen auftreten oder die Darstellung großer Ganzzahlen in der Zielprogrammiersprache zu viele Bytes kostet, können Sie den chinesischen Restsatz in Betracht ziehen.
Wählen Sie paarweise relativ Primzahlen m i > = 2, und Sie können eine große Zahl von 0 bis 1 cm (m 1 , m 2 , ..., m i ) -1 ausdrücken
Zum Beispiel wähle ich 2, 3, 5, 11, 79, 83, 89, 97, dann kann ich eine Zahl kleiner als 18680171730 eindeutig ausdrücken. 10000000000 (1e10) kann ausgedrückt werden als 0,1,0,1,38,59,50,49 (1e10 mod 2, 3 ..., 97), die nicht als spezielle Big Integer-Klasse / Struktur ausgedrückt werden müssen, die möglicherweise speichern Einige Bytes in einigen Programmiersprachen.
Addition und Subtraktion können direkt mit dieser Darstellung erfolgen. Beispiel:
(0,1,0,1,38,59,50,49)+(0,2,0,6,23,20,16,53) = 1e10 + 5000
= (0+0 mod 2, 1+2 mod 3, 0+0 mod 5, 1+6 mod 11, 38+23 mod 79, 59+20 mod 83, 50+16 mod 89, 49+53 mod 97)