Loading...
Orhan avatar Orhan 12 Точки

[Homework] Algorithms - Recursion and Recursive Algorithms - Problem {2} - Nested Loops To Recursion

Здравейте,

Написах някакво решения на втората задача, вади ми правилни решения до n=8(поне така си мисля), но не съм сигурен какво ще стане при по-големи числа, ако може някой по-разбиращ да сподели мнението си.
http://pastebin.com/su6qqj0X

Тагове:
2
Структури от данни и алгоритми 29/09/2015 14:23:26
JohnJohnny avatar JohnJohnny 6 Точки

ето го моето решение работи и с големи числа но по-бавно

http://pastebin.com/embed_js.php?i=PdP7yijB

 

2
StaVykoV avatar StaVykoV 169 Точки

JohnJohnny, струва ми се стандартното решение. Според мен си работи правилно и достатъчно бързо. Единствения коментар ми е, че numberOfLoops и numberOfIterations са ти с една и съща стойност през цялото време и няма смисъл и от двете, но това не пречи по никакъв начин на програмата.

0
StaVykoV avatar StaVykoV 169 Точки

Не мога да ти схвана логиката на условията в цикъла. По принцип в задачата се иска n пъти да завъртиш цикъла от 1 до n. Така че можеш да имаш в този for цикъл само викане на рекурсията пак от 1, до n и просто с index +1 и присвояване на стойността на i на даденото поле в масива. Според мен тези проверки които правиш са напълно излишни. Примерно проверката дали  i е по - малко или равно на 0 - излишна е, тъй като ти викаш i oт 1 до n, то така или ианче никога няма да стане 0.

По мои сметки се получава, че понякога цикъла ти не започва от 1 и не би трябвало да ти изкарва верен отговор за примерно n=4. Ако искаш пусни резултата за n=4 примерно за да го видим.  Отговора би трябвало да е всички числа от сорта 1111,1112,1113,1114,1121,1122,1123,1124,1131,....4441,4442,4443,4444, а броя на изкараните резултати общо 4 на 4-та.

Също така, можеш да направиш аrr и n глобални и да викаш финкцията само с index+1 а вътре цикъла няма нужда да започва от startNum тъй като то винаги е еднакво:1. 

 

П.П. Имай предвид, че печатането ти отнема доста време, тъй че ако реално искаш да провериш бързината на алгоритъма си, след като провериш, че вади правилни резултати, закоментирай си принтирането в рекурсията и тогава я пусни с таймер :)

 


Поправи ме ако бъркам, винаги може да пропускам нещо докато гледам кода ти.

1
25/09/2015 02:08:18
Piggov avatar Piggov 27 Точки

Ето и моето - аз съм изоплзвал Stack: линк

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.