Страница 1 из 1
Двунаправленные связанные списки
Добавлено:
24.02.2014 22:57:41
vladok00777
Здравствуйте! Кто может поделиться знаниями по вопросу: сложение длинных целых чисел при помощи двунаправленных связанных списков? Как это можно реализовать в программе?
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 08:43:57
SSerge
Это вы о чём? О работе с целыми переменной разрядности или о чём? При чем здесь списки и сложение?
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 09:32:21
xdsl
Задачами такого типа грузят обычно на младших курсах технических специальностей вузов при изучении абстрактных структур данных. Суть здесь не сложении, а в закреплении понятия "двусвязный список" на псевдореалистичных задачах. Скорее всего так.
vladok00777: Без условия задачи Вам вряд-ли кто поможет.
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 10:25:36
debi12345
Наверное имеются ввиду числа неограниченной разрядности, представленные в виде списков (почему то не массивов).
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 10:27:48
xdsl
debi12345 писал(а):Наверное имеются ввиду числа неограниченной разрядности, представленные в виде списков (почему то не массивов).
То-же так думаю, но гадать бессмысленно, надеюсь автор топика выложит условие.
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 11:24:39
NTFS
Сначала нужно научиться делать двунаправленные списки. Из хардкорного - первый том Кнута, из попсового - Яндекс подскажет.
Потом вспомнить сложение в столбик. как учили в школе.
И наконец, соединить эти два подхода.
Это то, что могу рассказать за карму на форуме.
В виде конкретных строчек кода, где-то на 400-500 рублей потянет.
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 12:18:52
xdsl
По спискам лучше без хардкора. У дедушки Вирта все достаточно внятно изложено. Как и у Ахо. И у обоих на псевдопаскале, так что проблем особых быть не должно.
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 14:21:30
debi12345
То-же так думаю, но гадать бессмысленно, надеюсь автор топика выложит условие.
Кстати если сделать это (добавив прочие матоперации) без промежуточной конверсии в строковый тип и используя MMX/SSE/AVX (то есть очень быстрым алгоритмом) - это стало бы очень полезной контрибуцией.
Добавлено спустя 14 минут 1 секунду:Матаппарат по теме:
http://en.wikipedia.org/wiki/Arbitrary-precision_arithmeticДобавлено спустя 5 минут 59 секунд:Кстати, С и Pascal - чуть ли не единственные из популярных языков, не поддерживающие этот тип данных. Так что есть простор сделать очень полезную контрибуцию
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 20:06:07
Mirage
debi12345 писал(а):Кстати, С и Pascal - чуть ли не единственные из популярных языков, не поддерживающие этот тип данных. Так что есть простор сделать очень полезную контрибуцию
Если на страничке в педивикии чего-то не указано, это не значит, что этого нет.
Вот например либа с реализацией чисел неограниченной разрядности :
http://code.google.com/p/delphilhlplib/
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 21:10:24
xdsl
Куда-то ходить и чего-то качать для поддержки длинных чисел не надо, все уже давно во freepascal есть: модуль gmp из packages, читаем здесь:
http://wiki.freepascal.org/gmp и здесь:
https://gmplib.org/
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 21:34:56
Sergei I. Gorelkin
mparith тоже работает из коробки, хоть и не входит в комплект fpc.
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 23:00:42
debi12345
модуль gmp из packages
Ага - цепляя C-ую DLL-ку. Только что глянул - есть SSE2, написана хорошо - где нужно на Assembler-e. В апкаминге будет и AVX[2]. Очень круто ! Вот бы эти парубки решили переписать FPC-ую арифметику.
http://code.google.com/p/delphilhlplib/
BigInteger and BigCardinal ?
SSE/AVX есть ?
Re: Двунаправленные связанные списки
Добавлено:
25.02.2014 23:28:40
Mirage
На ассемблере не кроссплатформенно. Сейчас уже нельзя только на x86 ориентироваться. По крайней мере библиотекам.
Нужно чтобы компилятор заботился об оптимизации.
Re: Двунаправленные связанные списки
Добавлено:
26.02.2014 00:04:57
debi12345
На ассемблере не кроссплатформенно. Сейчас уже нельзя только на x86 ориентироваться.
Трудно сказать. Возможно скоро ARM-у наступит хана. Intel начиная с Haswell сфокусировался на сверэкономичных процах с мощной (пригодной для серьезных игр) интегрированной графикой - даже регуляторы напряжения с катушками индуктивности умудрился в ЦПУ-корпус ингтегрировать. Как народу нравится 20 импульсных инверторов с частотой преобразования более 100 МГц на одном кристалле ?
Добавлено спустя 3 часа 19 минут 48 секунд:Зря опасались, GMP-команда поработала славно - есть ассемеблерные вставки для всех процов, подерживаемых GCC.