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

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

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

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

Сообщение vladok00777 » 24.02.2014 22:57:41

Здравствуйте! Кто может поделиться знаниями по вопросу: сложение длинных целых чисел при помощи двунаправленных связанных списков? Как это можно реализовать в программе?
vladok00777
незнакомец
 
Сообщения: 1
Зарегистрирован: 22.12.2013 15:37:27

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

Сообщение SSerge » 25.02.2014 08:43:57

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

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

Сообщение xdsl » 25.02.2014 09:32:21

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

vladok00777: Без условия задачи Вам вряд-ли кто поможет.
xdsl
постоялец
 
Сообщения: 131
Зарегистрирован: 15.01.2009 13:49:03

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

Сообщение debi12345 » 25.02.2014 10:25:36

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

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

Сообщение xdsl » 25.02.2014 10:27:48

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

То-же так думаю, но гадать бессмысленно, надеюсь автор топика выложит условие.
xdsl
постоялец
 
Сообщения: 131
Зарегистрирован: 15.01.2009 13:49:03

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

Сообщение NTFS » 25.02.2014 11:24:39

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

В виде конкретных строчек кода, где-то на 400-500 рублей потянет.
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

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

Сообщение xdsl » 25.02.2014 12:18:52

По спискам лучше без хардкора. У дедушки Вирта все достаточно внятно изложено. Как и у Ахо. И у обоих на псевдопаскале, так что проблем особых быть не должно.
xdsl
постоялец
 
Сообщения: 131
Зарегистрирован: 15.01.2009 13:49:03

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

Сообщение debi12345 » 25.02.2014 14:21:30

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

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

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

Добавлено спустя 5 минут 59 секунд:
Кстати, С и Pascal - чуть ли не единственные из популярных языков, не поддерживающие этот тип данных. Так что есть простор сделать очень полезную контрибуцию :)
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

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

Сообщение Mirage » 25.02.2014 20:06:07

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


Если на страничке в педивикии чего-то не указано, это не значит, что этого нет.
Вот например либа с реализацией чисел неограниченной разрядности :
http://code.google.com/p/delphilhlplib/
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

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

Сообщение xdsl » 25.02.2014 21:10:24

Куда-то ходить и чего-то качать для поддержки длинных чисел не надо, все уже давно во freepascal есть: модуль gmp из packages, читаем здесь: http://wiki.freepascal.org/gmp и здесь: https://gmplib.org/
xdsl
постоялец
 
Сообщения: 131
Зарегистрирован: 15.01.2009 13:49:03

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

Сообщение Sergei I. Gorelkin » 25.02.2014 21:34:56

mparith тоже работает из коробки, хоть и не входит в комплект fpc.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1395
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

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

Сообщение debi12345 » 25.02.2014 23:00:42

модуль gmp из packages

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

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

BigInteger and BigCardinal ?
SSE/AVX есть ?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

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

Сообщение Mirage » 25.02.2014 23:28:40

На ассемблере не кроссплатформенно. Сейчас уже нельзя только на x86 ориентироваться. По крайней мере библиотекам.
Нужно чтобы компилятор заботился об оптимизации.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

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

Сообщение debi12345 » 26.02.2014 00:04:57

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

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

Добавлено спустя 3 часа 19 минут 48 секунд:
Зря опасались, GMP-команда поработала славно - есть ассемеблерные вставки для всех процов, подерживаемых GCC.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

Рейтинг@Mail.ru