argon bulletin board
		Факултети => Факултет по математика и информатика => Темата е започната от: VooDooMaN в 27.04.2006, 17:11:54
		
			
			- 
				Познат ли Ви е примера от по-долу? Най-тривиалният, с който се сблъскваме в университета след "Hello World!". Като пример е чудесен, като реално приложим код адски слаб. Дали навсякъде се обяснява защо...
 
 int Factorial( int number ) {
 if ( number == 1 ) {
 return 1;
 }
 else {
 return number * Factorial( number - 1 );
 }
 }
- 
				И на мен ми беше странно това, при положение че може с цикъл и без рекурсия. По-добър пример за рекурсия би бил да речем намиране на пермутации. Може би това с факториела е по-разбираемо ако никога не си се сблъсквал с рекурсия.
 Сещам се за нещо кoето четох някъде, не се сещам кой го е казал : "Повторението е прекрасно, рекурсията е божествена " :)
- 
				Аз пък прочетох следното:
 
 In general, recursion leads to small code and slow execution and chews up stack space. For a small group of problems, recursion can produce simple, elegant solutions. For a slightly larger group of problems, it can produce simple, elegant, hard-to-understand solutions. For most problems, it produces massively complicated solutions—in those cases, simple iteration is usually more understandable. Use recursion selectively.
 
 За Факториел и Фибоначи при нарастване на числата рекурсията ще гълта безсмислено много памет и то при положение, че с итерация сложността ще е линейна. Със сигурност има места, където е полезна, но в общия случай е трудна за разбиране и гълта много памет.
- 
				забелязал съм че го дават в книгите за начинаещи за програмиране като пример за рекурсия незнам защо
 да си призная едно време като за първи път четох рекурсия макар и с този пример пак не го разбрах :))s
- 
				Аз мисля, че като за първи пример за първа рекурсия този код е идеален. Аз лично научих рекурсията именно с този пример (не от този форум, някой да не помисли нещо друго).
			
- 
				Явно, част от колегите са чели книжките само до глава "Рекурсия"... Или поне в тези книжки, които аз съм чел, после е показано колко по-добра е производителността при използване на итеративно решение (особено за Фибоначи)...
 Иначе примерът е ясен, но ако аз трябваше да илюстрирам рекурсията, бих ползвал това:
 (http://www.math.ubc.ca/~jbryan/recursion.jpg)
- 
				Кой по-конкретно визираш?
			
- 
				Явно, част от колегите са чели книжките само до глава "Рекурсия"...
 
 
 Супер, само че снимката по мое мнение е пример по-скоро за фрактална алгебра, отколкото за рекурсия.
 
 Иначе снимката момчето я държи с дясната ръка, следователно това е дясна рекурсия :)
- 
				Малко е скалъпен примера със снимката  :wink:, по-реално щеше да е ако не беше снимка, а телевизор.