|
Заблокирован
|
||||||
Посоветуйте функции для арифметики больших целых чисел06.06.2024, 22:40. Показов 11521. Ответов 166
Метки нет (Все метки)
Сегодня начал писать свою библиотеку для работы с большими целыми числами.
Пока что реализовал следующие функции:
Что еще можете посоветовать? Какие важные функции я упустил?
1
|
||||||
| 06.06.2024, 22:40 | |
|
Ответы с готовыми решениями:
166
Ограничения VBA в реализации арифметики длинных (больших) чисел
|
|
Заблокирован
|
|||||||||||||
| 07.06.2024, 16:22 [ТС] | |||||||||||||
|
Чтобы не было таких приколов: BigInt d = a.Add(b, c); Добавлено через 1 минуту
0
|
|||||||||||||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|||
| 07.06.2024, 16:23 | |||
a. на BigInt::
0
|
|||
|
Заблокирован
|
|
| 07.06.2024, 16:24 [ТС] | |
|
0
|
|
|
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,351
|
|
| 07.06.2024, 16:25 | |
|
0
|
|
|
Заблокирован
|
|
| 07.06.2024, 16:26 [ТС] | |
|
0
|
|
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
||||||||||||||
| 07.06.2024, 16:30 | ||||||||||||||
|
наверное, нужно inline её сделать, раз она в заголовке
Добавлено через 3 минуты Royal_X,
0
|
||||||||||||||
|
Заблокирован
|
||
| 07.06.2024, 16:31 [ТС] | ||
|
Алексей1153, я бы еще такую логику бы понял
a.Add(b)но a.Add(b, c) это бред. Поэтому и говорю, что их вообще нужно убрать из класса.Сделаю отдельные функции Add(const BigInt&, const BigInt&) Добавлено через 43 секунды
0
|
||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|
| 07.06.2024, 16:32 | |
|
0
|
|
|
Заблокирован
|
||||
| 07.06.2024, 16:50 [ТС] | ||||
|
Алексей1153, я не знаю как реализовать, чтобы кроме a + b еще можно было вызвать BigInt::Add(a, b), но так, чтобы не вызывалось c.Add(a, b)
Добавлено через 1 минуту может быть, математические функции тогда не нужно засовывать в класс в классе только перегрузить операторы Добавлено через 2 минуты a.Divide(b) а те, что с одним аргументом, то сделать вообще без и вызвать так a.ISqrt() Добавлено через 4 минуты BigInt::Divide(a)
0
|
||||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|
| 07.06.2024, 16:55 | |
|
0
|
|
|
Заблокирован
|
|
| 07.06.2024, 16:57 [ТС] | |
|
Алексей1153, я бы предпочел создать структуру или класс, который представляет валидные строки.
Для математических функций же сделать просто namespace, и не добавлять функции в класс. Т.е. у этих функций только параметры менять, чтобы они принимали объекты класса, структуры. Перегрузить операторы вне класса, структуры.
0
|
|
|
Заблокирован
|
||||||
| 08.06.2024, 01:09 [ТС] | ||||||
|
Алексей1153, сделал так:
Кликните здесь для просмотра всего текста
Поля и функции класса приватные. Публичные только конструкторы. Операторы +, -, *, /, %, ^, а также ostream перегружены для удобства Математические функции вызываются без создания объекта класса. Например, разрешены только Add(a, b) или a + b. Т.е. не нужно писать BigInt::Add(a, b). Также нет глючного c.Add(a, b). Короче, в целом доволен.
0
|
||||||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|||||||
| 08.06.2024, 05:54 | |||||||
|
Royal_X, а зачем функции наружу повытаскивал то ? И мусора в коде много получилось, и компилятор не сможет встроить функцию.
Начинать с подчёркивания идентификаторы не нужно - это UB, по сути (особенно подчёркивание и большая буква следом)
0
|
|||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||
| 08.06.2024, 06:58 | |||||||
|
Кликните здесь для просмотра всего текста
1
|
|||||||
|
Заблокирован
|
|
| 08.06.2024, 10:59 [ТС] | |
|
Алексей1153, да, так лучше. Вроде всё так, как я и хотел. Операторы перегружены, математические функции вводятся сокращенно (Add, а не BigInt::Add) и не вызываются через объекты класса, типа a.Add.
Возможно, стоит еще перегрузить операторы сравнения. Добавить get_value(), get_sign(), get_nan(), print()... В планах еще сделать класс для дробей BigFraction с полями numerator и denominator типа BigInt. Но я не представляю, как правильно сделать. Сделать наследование от BigInt?
0
|
|
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|
| 08.06.2024, 11:08 | |
|
1
|
|
|
Заблокирован
|
||
| 08.06.2024, 11:12 [ТС] | ||
|
0
|
||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|
| 08.06.2024, 11:16 | |
|
Royal_X, BigInt можно поместить в один заголовок. Дробь - в другой. Для дроби нужно будет подключить заголовок с BigInt
а можно всё в одном заголовке - как больше нравится
0
|
|
|
Заблокирован
|
|||||||
| 08.06.2024, 13:28 [ТС] | |||||||
|
в планах потом создать статическую библиотеку, но нужно будет сделать так, чтобы в заголовке библиотеки были только объявления Добавлено через 49 минут Алексей1153, кстати, я в посте 52 делал правильно, типа нужно еще объявлять вне класса
т.е. нужно объявлять дважды: один раз внутри класса с friend перед именем, и другой раз вне класса без friend. Только после этого, можно вызвать, например, Add("1", "2") Добавлено через 11 минут Алексей1153, и вообще, какой смысл от friend, если я определил все математические функции внутри класса. Этот friend был необходим раньше, когда у меня функции определялись вне класса, чтобы я имел доступ к закрытым полям класса. Добавлено через 4 минуты Алексей1153, единственный смысл от friend это то, что если заменю на static, то потом придется вызывать в main через BigInt::, сейчас это не нужно, пишу сразу имя функции. Ладно, оставлю friend, так лучше.
0
|
|||||||
|
Заблокирован
|
||
| 08.06.2024, 13:45 [ТС] | ||
|
0
|
||
| 08.06.2024, 13:45 | |
|
Дан файл целых чисел. Подсчитать сумму чисел, больших числа N
Найти сумму целых чисел положительных чисел, больших 20, меньших 100 и кратных 3 Сравнить функции(рекурсивную и итерационную) по скорости выполнения для больших чисел Для последовательности целых, оканчивающейся "8", определить число чисел, больших первого введенного числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
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.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|