Я намагаюся подумати над тим, як би я міг робити обчислення на надзвичайно великій кількості (до infinitum - intergers no floats), якщо мовна конструкція не здатна обробляти числа, що перевищують певне значення.
Я впевнений, що я не перший і не останній, хто задав це питання, але пошукові терміни, які я використовую, не дають мені алгоритму для вирішення цих ситуацій. Швидше за все, більшість пропозицій пропонують зміни мови чи змінну зміну або розповідають про речі, які здаються нерелевантними для мого пошуку. Тому мені потрібно невелике керівництво.
Я б намалював такий алгоритм:
Визначте максимальну довжину цілочисельної змінної для мови.
Якщо число більше половини довжини максимальної довжини змінної, розділіть її на масив. (дайте невелику ігрову кімнату)
Порядок масиву [0] = числа найбільше праворуч [n-max] = числа найбільше зліва
Вих. Число: 29392023 Масив [0]: 23, Масив [1]: 20, масив [2]: 39, масив [3]: 29
Оскільки я встановив половину довжини змінної як точки відмітки, то я можу обчислити одиниці, десяті, соті тощо. Розташуйте через позначку на півдорозі, щоб, якщо змінна максимальна довжина становила 10 цифр від 0 до 9999999999, то я знаю, що Половини, що на п’ять цифр, дають мені ігрову кімнату.
Отже, якщо я додаю або помножую, я можу мати функцію перевірки змінної, яка бачить, що шоста цифра (справа) масиву [0] - те саме місце, що і перша цифра (справа) масиву [1].
Ділення та віднімання мають свої проблеми, про які я ще не думав.
Я хотів би дізнатися про найкращі реалізації підтримки більшої кількості, ніж програма.