Страница 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.