Китайська теорема залишків
Якщо довільні великі цілі числа часто з’являються або велике ціле представлення в цільовій мові програмування коштує занадто багато байтів, ви можете розглянути можливість використання китайської теореми залишків.
Виберіть кілька парних відносно простих цілих чисел m i > = 2, і ви можете виразити велике число від 0 до lcm (m 1 , m 2 , ..., m i ) -1
Наприклад, я вибираю 2, 3, 5, 11, 79, 83, 89, 97, тоді я можу однозначно виразити число менше 18680171730. 10000000000 (1e10) можна виразити як 0,1,0,1,38,59,50,49 (1e10 mod 2, 3 ..., 97), які не повинні бути виражені спеціальними класами / структурами Big Integer, які можуть зберегти деякі байти в якійсь мові програмування.
Додавання та субстракція можна здійснити безпосередньо за допомогою цього подання. Приклад:
(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)