|
Заблокирован
|
||||||
Посоветуйте функции для арифметики больших целых чисел06.06.2024, 22:40. Показов 11518. Ответов 166
Метки нет (Все метки)
Сегодня начал писать свою библиотеку для работы с большими целыми числами.
Пока что реализовал следующие функции:
Что еще можете посоветовать? Какие важные функции я упустил?
1
|
||||||
| 06.06.2024, 22:40 | |
|
Ответы с готовыми решениями:
166
Ограничения VBA в реализации арифметики длинных (больших) чисел
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 08.06.2024, 13:51 | |||
|
0
|
|||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
||||
| 08.06.2024, 14:48 | ||||
|
покажи пример, что не вызывается ? Желательно ссылкой с https://www.onlinegdb.com/ , например
0
|
||||
|
Заблокирован
|
|
| 08.06.2024, 14:58 [ТС] | |
|
DrOffset, friend изначально был для того, чтобы получить доступ к закрытым полям класса, учитывая, что функции находились вне класса.
Но Алексей в посте 53 спросил, мол зачем я функции вытащил наружу и посоветовал код, в котором они были внутри класса. Однако он friend оставил. Кажется, мне доступ для записи к закрытым полям класса BigInt не нужен. Я пишу сейчас класс BigFrac и я обращаюсь к этим закрытым полям класса BigInt через геттер. Например, чтобы валидировать дробь мне нужно проверить значение nan входных параметров типа BigInt, а также value второго аргумента на наличие "0". Насколько я понимаю, мои friend функции даже сейчас inline. Т.е. если я уберу friend и вместо этого явно пропишу перед именем inline, то я смогу в главной функции вызвать математические функции напрямую, без BigInt:: ? Добавлено через 4 минуты Алексей1153, когда математические функции не объявляю второй раз за пределами класса, то в главной функции они не вызываются вообще, ни просто Add(), ни даже через BigInt::Add. Компилятор пишет, что такой функции в области видимости просто нет. Т.е., арифметические операции работают только перегруженными операторами.
0
|
|
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|
| 08.06.2024, 15:05 | |
|
Royal_X, мой ваиант - когда складываются два значения типа BigInt
а ты строки передаёшь. Откуда компилятор может угадать, в кого конвертировать эти строки? Только при явном указании типа: либо Add(BigInt{"1"},BigInt{"2"}); либо (в случае статики) BigInt::Add("1","2"); Добавлено через 1 минуту и только из-за того, что приходится явно указывать тип BigInt я бы не стал усложнять код лишними конструкторами и функциями. Наоборот, мне бы даже больше это подошло. Неявные преобразования не всегда читаемы
0
|
|
|
Заблокирован
|
||||||
| 08.06.2024, 15:06 [ТС] | ||||||
|
Алексей1153, вот, проверь на простом примере
0
|
||||||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|
| 08.06.2024, 15:07 | |
|
Royal_X, выше уже есть объяснение.
0
|
|
|
Заблокирован
|
||||||
| 08.06.2024, 15:13 [ТС] | ||||||
|
Алексей1153, строки ни при чем. Даже если передаю объекты BigInt, все равно ошибка. Компилятор не видит функцию Add
Добавлено через 2 минуты А так уже ошибки нет. Тут уже двойное объявление
0
|
||||||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|
| 08.06.2024, 15:15 | |
|
Royal_X, а так есть
https://onlinegdb.com/Bq8RBHRRw
0
|
|
|
Заблокирован
|
|
| 08.06.2024, 15:28 [ТС] | |
|
[Алексей1153, я не понимаю, к чему этот код. Он не похож на мой. У меня Add возвращает только и только BigInt. Выше я уже привел пример с ошибкой, а также показал, как ошибка исчезает при двойном объявлении.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 08.06.2024, 15:30 | ||
|
А вот если нужна конвертация при передаче, то будет, потому что ADL уже не работает.
0
|
||
|
Заблокирован
|
|
| 08.06.2024, 15:32 [ТС] | |
|
DrOffset, зачем я делал конструкторы для строки, если буду только BigInt передавать? Чтобы поставить в рамку и восхищаться? Очевидно же, что я буду передавать все, что и задумывалось передать
0
|
|
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
||
| 08.06.2024, 15:34 | ||
![]() возвращаемое значение тут неважно
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 08.06.2024, 15:35 | |||
|
Я тебе просто рассказываю как работают механизмы, которыми ты пользуешься, чтобы была осознанность в применении. А по поводу этого я ж сразу написал,
0
|
|||
|
Заблокирован
|
|
| 08.06.2024, 15:37 [ТС] | |
|
DrOffset, ну так вы написали, что я правильно сделал с этим двойным объявлением. А вот Алексей1153 говорит обратное.
Добавлено через 46 секунд DrOffset, т.е. убрать friend и прописать вместо него inline?
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 08.06.2024, 15:39 | |||
|
Добавлено через 51 секунду Так нафига этот friend тогда, просто для красоты?
0
|
|||
|
Заблокирован
|
|
| 08.06.2024, 15:44 [ТС] | |
|
DrOffset, приду домой, попробую
Добавлено через 3 минуты DrOffset, если убрать friend и добавить вместо него inline, то убрать двойные объявления за пределами класса?
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||||||
| 08.06.2024, 15:45 | |||||||||||
|
Т.е. я говорю о том, что вот этот код
0
|
|||||||||||
|
Заблокирован
|
|
| 08.06.2024, 15:46 [ТС] | |
|
DrOffset, у меня не все функции имеют перегруженные операторы, нужно без них. Перегрузка перегрузкой, но нужно, чтобы все функции и без этого работали
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 08.06.2024, 15:48 | ||
|
PS.
"Лучше", с учетом контекста применения автором этого кода и всей темы, а не "вообще лучше". А то понабегут сейчас поправляльщики ![]() Добавлено через 1 минуту
0
|
||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
|
| 08.06.2024, 15:50 | |
|
0
|
|
| 08.06.2024, 15:50 | |
|
Дан файл целых чисел. Подсчитать сумму чисел, больших числа 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.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|