|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
||||||
Посоветуйте функции для арифметики больших целых чисел06.06.2024, 22:40. Показов 11490. Ответов 166
Метки нет (Все метки)
Сегодня начал писать свою библиотеку для работы с большими целыми числами.
Пока что реализовал следующие функции:
Что еще можете посоветовать? Какие важные функции я упустил?
1
|
||||||
| 06.06.2024, 22:40 | |
|
Ответы с готовыми решениями:
166
Ограничения VBA в реализации арифметики длинных (больших) чисел
|
|
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,370
|
||||||
| 09.06.2024, 00:15 | ||||||
|
Вот это самое ценное. В сети нету. Только для вас....
Обфускация не делал. И так ни кто ни чего не поймёт. Я сам, что бы что то в ней изменить / доработать, три дня сидел вьезжал....
1
|
||||||
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
||||||
| 09.06.2024, 00:52 [ТС] | ||||||
|
DrOffset, мне кажется, я сам не понимая этого, в итоге сделал, как и вы советовали
Мой заголовок выглядит так:
inline функции (кроме IntegerQ) определил в заголовке, как это и принято делать. Иначе, компилятор выдает предупреждение (хотя, он норм относится к тому, что IntegerQ определяется в cpp файле). Все работает норм. И даже IntelliSense перестал ругаться, когда я завел два файла (bigint.cpp и bigint.h)
1
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 09.06.2024, 01:03 | ||
|
Royal_X, только IntegerQ при таком варианте не должна быть inline. Она же в другом файле определена.
Добавлено через 2 минуты
0
|
||
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|||
| 09.06.2024, 01:05 [ТС] | |||
|
DrOffset, в другом файле я ее определил
int IntegerQ(const std::string& s) { // } и вызываю там просто как IntegerQ() Добавлено через 2 минуты
0
|
|||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 09.06.2024, 01:11 | ||
|
Royal_X, если функция определена в другой единице трансляции, то в заголовочном файле она не должна быть inline. Но в твоем случае похоже, что IntegerQ - это внутренняя функция для нужд реализации, и ее вообще не должно быть в заголовочном файле. Тогда ее можно оставить в cpp и сделать static inline (или вместо static в безымянный namespace сунуть), а из заголовочного файла убрать.
Добавлено через 2 минуты
1
|
||
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
||
| 09.06.2024, 01:13 [ТС] | ||
|
0
|
||
|
фрилансер
6506 / 5755 / 1134
Регистрация: 11.10.2019
Сообщений: 15,404
|
|
| 09.06.2024, 05:59 | |
|
Royal_X, ну и осталось сравнить шустродействие по сравнению с более старыми библиотеками про длинную арифметику
0
|
|
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|||||||
| 09.06.2024, 12:16 [ТС] | |||||||
|
вот, новая версия заголовочного файла (добавил все операторы сравнения и унарный минус, а также убрал поле nan - сделал это, ибо была лишняя проверка на nan во всех функциях. Теперь просто assert стоит в конструкторах, а также в тех математических функциях, где нужно, например, при делении на 0).
1
|
|||||||
|
фрилансер
6506 / 5755 / 1134
Регистрация: 11.10.2019
Сообщений: 15,404
|
|||
| 09.06.2024, 13:43 | |||
|
Я бы сделал шаблон, где BigInt будет с проверкой nan, а где будет ложить на него. Ведь кому-то это может понадобиться. Ладно-ладно, скажешь, опять ненужные навороты Не навязываю.
0
|
|||
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|||
| 09.06.2024, 14:06 [ТС] | |||
|
Добавлено через 1 минуту Ни одна система компьютерной алгебры (Mathematica, Maple, Maxima) с ошибочным вводом, мусором не работает. Добавлено через 4 минуты Алексей1153, ты ведь когда работаешь с числами в С++, сам же контролируешь, чтобы не делить на ноль и прочее. Ну так же само и с моей библиотекой. За недопустимые операции и за мусорный ввод отвечает пользователь.
0
|
|||
|
фрилансер
6506 / 5755 / 1134
Регистрация: 11.10.2019
Сообщений: 15,404
|
||||||||||||||
| 09.06.2024, 14:14 | ||||||||||||||
и неопределённости тоже без проблем образуются вовсе не из-за входных данных
0
|
||||||||||||||
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
||||
| 09.06.2024, 14:21 [ТС] | ||||
|
Добавлено через 4 минуты а моя библиотека с double не работает
0
|
||||
|
фрилансер
6506 / 5755 / 1134
Регистрация: 11.10.2019
Сообщений: 15,404
|
|||
| 09.06.2024, 14:22 | |||
|
про оптимизацию.
для "бинарных" функций тоже надо придумать варианты, где первый аргумент не копировался бы, а изменялся "по месту" то есть, проверка флага тебя не устраивает, а проверку ассертом хотел оставить? Ну, красава
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 09.06.2024, 14:22 | |
|
0
|
|
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|||
| 09.06.2024, 14:26 [ТС] | |||
|
Добавлено через 2 минуты тратить такты на проверку nan это бред assert только в конструкторе
0
|
|||
|
фрилансер
6506 / 5755 / 1134
Регистрация: 11.10.2019
Сообщений: 15,404
|
|
| 09.06.2024, 14:26 | |
|
Royal_X, ну, я и имею в виду, что напрашивается два варианта функций - делающие купию и меняющие по месту
0
|
|
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|
| 09.06.2024, 14:28 [ТС] | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 09.06.2024, 14:30 | |
|
0
|
|
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|||
| 09.06.2024, 14:33 [ТС] | |||
|
Поменяю на std::exit Добавлено через 2 минуты Открою секрет. Даже в топовом коммерческом софте (Mathematica) можешь несколько часов вычислять и выдаст потом ошибку, причем иногда вообще печально-смешную, например, не хватило немного машинной точности, типа бро увеличь и попробуй еще. Т.е. даже если все было правильно, все данные правильные, но неверно настроил, то потерял время. Никто не мешает при делениях проверить на ноль в коде. if никто не отменял. Так же само с другими операциями
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 09.06.2024, 14:37 | ||
|
Твою либу за екзит или что - то подобное сразу выкинут в мусорку. Добавлено через 36 секунд Не по теме: Royal_X, ладно, удачи, буду наблюдать дальше ))
0
|
||
| 09.06.2024, 14:37 | |
|
Дан файл целых чисел. Подсчитать сумму чисел, больших числа N
Найти сумму целых чисел положительных чисел, больших 20, меньших 100 и кратных 3 Сравнить функции(рекурсивную и итерационную) по скорости выполнения для больших чисел Для последовательности целых, оканчивающейся "8", определить число чисел, больших первого введенного числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|