Рекурсия не се учи в 10ти,иначе щях да си спомнямАз написа:THE KING OF TIME написа:Учи ли се въобще в училище такова нещо. То тва не е за нормални хора ебаси.
Учихме го в 10 клас и нищо не схванах
Математиците да се обадят
- SneakyDude
- Мнения: 391
- Регистриран на: 09 Авг 2001 13:23
- Местоположение: София
- Обратна връзка:
Понеже никой не обясни за еденичния факториел
1! = 1
2! = 1 Х 2
3! = 1 Х 2 Х 3
4! = 1 Х 2 Х 3 Х 4
Накратко - съкратен начин да запишеш умножението на 1 по 2 по 3 по ... до N.
За рекурсията - както беше описано по-горе рекурсивна е тази функция, която сама вика себе си...
Може от пръв поглед да не личи, но рекурсията е много мощно средство - с нея много лесно се пишат алгоритмни за обхождане на графи (разбирай лабиринти, обхождане на шахматна дъска с определена фигура и т.н.) при това с така наречения бектрекинг (т.е. тръгва да обхожда, стига до здънена улица, връща се не предишната пресечка, пробва нова посока, стига до задънена улица, пак се връща...и така докато намери път или всички пътища или най-късия от тях примерно...).
Смятането на факториел с рекурсивна функция, не е кой знае какво, но демонстрира как да се използва рекурсията (но не демонстрира пълната и мощ).
Хайде да напишем фунция за N!
Основите елементи на рекурсивната функция са: 1-во трябва да и кажеш какво да прави в еденичния случай (при нас ако N = 1 и функцията е 1) 2-ро да определиш каква е функцията, ако вече имаме изчислена функцията за N-1 стъпки (при нас Ф(N) = Ф (N-1) Х N).
Ето как изглежда рекурсивна функция за изчисляване на N!
функция Ф1(статичен параметър N)
Ако N = 1 тогава Ф1 = 1
иначе Ф1 = Ф1(N-1) * N
Ако извикаме примерно Ф1(4) ще ни върне 24 (т.е. ако попълним цяло число ще смята факториел от него...ако не е цяло ще зацикли и ще изчерпа маметта
)
В някои езици нещата ще изглеждат различно.
Обратния (т.е. нормалния ) начин за решаване на такива задачи (примерно с цикъл), се нарича итеративен.
Накратко - щом аз съм го разбрал, значи е нещо елементарно...
1! = 1
2! = 1 Х 2
3! = 1 Х 2 Х 3
4! = 1 Х 2 Х 3 Х 4
Накратко - съкратен начин да запишеш умножението на 1 по 2 по 3 по ... до N.
За рекурсията - както беше описано по-горе рекурсивна е тази функция, която сама вика себе си...
Може от пръв поглед да не личи, но рекурсията е много мощно средство - с нея много лесно се пишат алгоритмни за обхождане на графи (разбирай лабиринти, обхождане на шахматна дъска с определена фигура и т.н.) при това с така наречения бектрекинг (т.е. тръгва да обхожда, стига до здънена улица, връща се не предишната пресечка, пробва нова посока, стига до задънена улица, пак се връща...и така докато намери път или всички пътища или най-късия от тях примерно...).
Смятането на факториел с рекурсивна функция, не е кой знае какво, но демонстрира как да се използва рекурсията (но не демонстрира пълната и мощ).
Хайде да напишем фунция за N!
Основите елементи на рекурсивната функция са: 1-во трябва да и кажеш какво да прави в еденичния случай (при нас ако N = 1 и функцията е 1) 2-ро да определиш каква е функцията, ако вече имаме изчислена функцията за N-1 стъпки (при нас Ф(N) = Ф (N-1) Х N).
Ето как изглежда рекурсивна функция за изчисляване на N!
функция Ф1(статичен параметър N)
Ако N = 1 тогава Ф1 = 1
иначе Ф1 = Ф1(N-1) * N
Ако извикаме примерно Ф1(4) ще ни върне 24 (т.е. ако попълним цяло число ще смята факториел от него...ако не е цяло ще зацикли и ще изчерпа маметта
В някои езици нещата ще изглеждат различно.
Обратния (т.е. нормалния ) начин за решаване на такива задачи (примерно с цикъл), се нарича итеративен.
Накратко - щом аз съм го разбрал, значи е нещо елементарно...
The only difference between Salvador Dalí and crazy people
is that Salvador Dalí is not crazy.
is that Salvador Dalí is not crazy.
- Gnumerick
- Мнения: 529
- Регистриран на: 29 Май 2004 20:01
- Местоположение: In my den, staying in the corner Професия: Scientist Интереси: Technologies
- Обратна връзка:
За да го обясня още веднъж, ще дам две формули за членовете на прогресията на Фибоначи - рекурсивна и директна.
Нека първо да обясня какво представлява числова редица, чиито частен случай е прогресията.
Ще направя таблица, в която на първия ред ще напишем числата 1, 2, 3 и т.н., а на втория – числата от прогресията на Фибоначи. За да е дефинирана една числова редица, трябва да има правило (алгоритъм), чрез който от числото 1 да се получи първия член от редицата, от числото 2 – втория член, и т.н., от числото n да се получи n-ия член на редицата.
Както виждаш, разбихме на стъпки стойностите, докато получим излаз, в който участват само F(1) и F(2). Защо ли? Защото преди малко казахме, че тези две стойности са дефинирани, като в тази случай са равни на 1. Така получаваме:
F(6)=1+1+1+1+1+1+1+1
F(6)=8
т.е. сме получили отговора вярно.
Това е и същността на рекурсията – използвайки свойствата на функцията да получим дефинираните предварително стойности.
Надявам се да съм бил полезен, ако нещо не е ясно, питай.
Нека първо да обясня какво представлява числова редица, чиито частен случай е прогресията.
Ще направя таблица, в която на първия ред ще напишем числата 1, 2, 3 и т.н., а на втория – числата от прогресията на Фибоначи. За да е дефинирана една числова редица, трябва да има правило (алгоритъм), чрез който от числото 1 да се получи първия член от редицата, от числото 2 – втория член, и т.н., от числото n да се получи n-ия член на редицата.
Както виждаш, разбихме на стъпки стойностите, докато получим излаз, в който участват само F(1) и F(2). Защо ли? Защото преди малко казахме, че тези две стойности са дефинирани, като в тази случай са равни на 1. Така получаваме:
F(6)=1+1+1+1+1+1+1+1
F(6)=8
т.е. сме получили отговора вярно.
Това е и същността на рекурсията – използвайки свойствата на функцията да получим дефинираните предварително стойности.
Надявам се да съм бил полезен, ако нещо не е ясно, питай.


"Най-необяснимото на света е, че той е напълно обясним."
Алберт Айнщайн