Двунаправленные связанные списки

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Ответить
vladok00777
незнакомец
Сообщения: 1
Зарегистрирован: 22.12.2013 15:37:27

Двунаправленные связанные списки

Сообщение vladok00777 »

Здравствуйте! Кто может поделиться знаниями по вопросу: сложение длинных целых чисел при помощи двунаправленных связанных списков? Как это можно реализовать в программе?
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Это вы о чём? О работе с целыми переменной разрядности или о чём? При чем здесь списки и сложение?
xdsl
постоялец
Сообщения: 131
Зарегистрирован: 15.01.2009 12:49:03

Сообщение xdsl »

Задачами такого типа грузят обычно на младших курсах технических специальностей вузов при изучении абстрактных структур данных. Суть здесь не сложении, а в закреплении понятия "двусвязный список" на псевдореалистичных задачах. Скорее всего так.

vladok00777: Без условия задачи Вам вряд-ли кто поможет.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

Наверное имеются ввиду числа неограниченной разрядности, представленные в виде списков (почему то не массивов).
xdsl
постоялец
Сообщения: 131
Зарегистрирован: 15.01.2009 12:49:03

Сообщение xdsl »

debi12345 писал(а):Наверное имеются ввиду числа неограниченной разрядности, представленные в виде списков (почему то не массивов).

То-же так думаю, но гадать бессмысленно, надеюсь автор топика выложит условие.
NTFS
постоялец
Сообщения: 388
Зарегистрирован: 05.11.2007 13:57:50
Откуда: Краснодар
Контактная информация:

Сообщение NTFS »

Сначала нужно научиться делать двунаправленные списки. Из хардкорного - первый том Кнута, из попсового - Яндекс подскажет.
Потом вспомнить сложение в столбик. как учили в школе.
И наконец, соединить эти два подхода.
Это то, что могу рассказать за карму на форуме.

В виде конкретных строчек кода, где-то на 400-500 рублей потянет.
xdsl
постоялец
Сообщения: 131
Зарегистрирован: 15.01.2009 12:49:03

Сообщение xdsl »

По спискам лучше без хардкора. У дедушки Вирта все достаточно внятно изложено. Как и у Ахо. И у обоих на псевдопаскале, так что проблем особых быть не должно.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

То-же так думаю, но гадать бессмысленно, надеюсь автор топика выложит условие.

Кстати если сделать это (добавив прочие матоперации) без промежуточной конверсии в строковый тип и используя MMX/SSE/AVX (то есть очень быстрым алгоритмом) - это стало бы очень полезной контрибуцией.

Добавлено спустя 14 минут 1 секунду:
Матаппарат по теме:
http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic

Добавлено спустя 5 минут 59 секунд:
Кстати, С и Pascal - чуть ли не единственные из популярных языков, не поддерживающие этот тип данных. Так что есть простор сделать очень полезную контрибуцию :)
Mirage
энтузиаст
Сообщения: 880
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

debi12345 писал(а):Кстати, С и Pascal - чуть ли не единственные из популярных языков, не поддерживающие этот тип данных. Так что есть простор сделать очень полезную контрибуцию :)


Если на страничке в педивикии чего-то не указано, это не значит, что этого нет.
Вот например либа с реализацией чисел неограниченной разрядности :
http://code.google.com/p/delphilhlplib/
xdsl
постоялец
Сообщения: 131
Зарегистрирован: 15.01.2009 12:49:03

Сообщение xdsl »

Куда-то ходить и чего-то качать для поддержки длинных чисел не надо, все уже давно во freepascal есть: модуль gmp из packages, читаем здесь: http://wiki.freepascal.org/gmp и здесь: https://gmplib.org/
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

mparith тоже работает из коробки, хоть и не входит в комплект fpc.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

модуль gmp из packages

Ага - цепляя C-ую DLL-ку. Только что глянул - есть SSE2, написана хорошо - где нужно на Assembler-e. В апкаминге будет и AVX[2]. Очень круто ! Вот бы эти парубки решили переписать FPC-ую арифметику.

http://code.google.com/p/delphilhlplib/

BigInteger and BigCardinal ?
SSE/AVX есть ?
Mirage
энтузиаст
Сообщения: 880
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

На ассемблере не кроссплатформенно. Сейчас уже нельзя только на x86 ориентироваться. По крайней мере библиотекам.
Нужно чтобы компилятор заботился об оптимизации.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

На ассемблере не кроссплатформенно. Сейчас уже нельзя только на x86 ориентироваться.

Трудно сказать. Возможно скоро ARM-у наступит хана. Intel начиная с Haswell сфокусировался на сверэкономичных процах с мощной (пригодной для серьезных игр) интегрированной графикой - даже регуляторы напряжения с катушками индуктивности умудрился в ЦПУ-корпус ингтегрировать. Как народу нравится 20 импульсных инверторов с частотой преобразования более 100 МГц на одном кристалле ?

Добавлено спустя 3 часа 19 минут 48 секунд:
Зря опасались, GMP-команда поработала славно - есть ассемеблерные вставки для всех процов, подерживаемых GCC.
Ответить