Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

MartinDekov avatar MartinDekov -1 Точки

Най - сложни алгоритми с основни знания?

Намирам писането на алгоритми за чертаене на фигури(имаше на един от изпитите чертаене на яйце) за доста сложна задача, дори когато имам написан кода, ми отнема известно време да го разчета.Това означава ли, че програмирането не е за мен?Имам основни знания по програмиране от Pascal(училище) и знам целта на методите.На основно ниво има ли по-сложно от чертаенето на фигури?

3
Общи приказки
Filkolev avatar Filkolev 4482 Точки
Best Answer

Основни знания е доста разтегливо понятие. Сложността на една задача не зависи пряко от нужните знания от техническа гледна точка. Примерно, ако знаеш цикли, условни конструкции, масиви и как да ползваш променливи то можеш да решиш богат набор от задачи. Това, че една задача изисква да знаеш само елементарни сметки, а друга - речници, не говори много относно трудността. Помня един изпит, а сигурно и хората, които бяха на него още помнят, една първа задача с масиви, "лесната задача", как се оказа най-сложната и как хората се бореха за отделни тестове от по 5 точки. И колко по-лесно се справиха със задачата с матрица, тази с речник и тази с текстообработка.

Разбира се, колкото повече знания има човек за възможностите на езика или инструментите, които ползва, толкова по-вероятно е да може да намери сравнително просто решение на проблем, който в противен случай би бил много по-сложен. Примерно, на кандидатстудентски изпит по математика решавах някаква задача, стигам до някакъв момент, в който трябва да намеря нещо и се сещам, че има една теорема, която директно би ми дала това, което искам. Ако не знаех, че такава теорема съществува (а тя не се преподаваше), щях да изгубя много повече време да навържа знанията, които имах, за да стигна до решението. Преоткриването на топлата вода не е лесна работа. 

По подобен начин стоят нещата и с алгоритмичните задачи, които се дават на изпит или със звезда в домашните/упражненията. Проблеми, над които съм се блъскал с дни, ми се струваха елементарни след като минах курса по алгоритми - виждам дадена задача, разбирам, че това е примерно комбинаторна задача, разбирам, че търся пермутация с повторение, след което просто намирам готов алгоритъм и го модифицирам ако се наложи. Т.е. аз имам вече някакъв набор инструменти в някакво куфарче да го наречем и като видя някаква задача доста по-лесно мога да преценя кой инструмент да извадя, за да я реша без особени драми. Ако в куфарчето имам само знанията какво е цикъл, променлива и проверка на условие, това значи, че аз от най-базовите градивни елементи трябва да създам решение от нулата, което (ако говорим за тип задача, която не съм решавал) ще е изключително трудно и ще изисква и не малко творчество. 

Т.е. на изпит се очаква, че това, което е преподадено до момента ще е достатъчно като технически знания. Ако имаш нещо в повече - супер, някъде може да си улесниш живота. Но оттам нататък говорим за опит и то с решаване на няколко основни вида задачи. С гледане не се научава, защото ако не минеш през мъките сам да си изградиш съответните връзки в мозъка знанието е повърхностно.

Ако ти е трудно да разбереш готово решение на задача или: 1) не си затвърдил базовите си знания, ситанксис и основни конструкции, 2) решението просто е кофти написано, вярно, но нечетимо, неразбираемо. Относно второто няма какво да направиш. Така че просто решавай задачи и моят съвет е по трудния начин - пробваш едно, друго, трето; псуваш, търсиш съвети как да подходиш, пак пробваш, пак псуваш и накрая ще стане. Втори път като решаваш нещо подобно ще е много по-лесно, защото в процеса на пробване и псуване си се сблъскал и си решил един куп по-малки проблеми, които може да срещнеш в много други задачи. И този процес е в пъти по-ползотворен от това да разгледаш нещо наготово, да го разбереш и да си кажеш "да, разбрах го". И разбира се за трудния начин трябва време; ако от един месец се занимаваш по-сериозно с програмиране нормално е много задачи да ти се струват непосилни.

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