ZAMYLA: સમજવા માટે રિકર્ઝન, તમારી પાસે પ્રથમ રિકર્ઝન સમજે છે. કાર્યક્રમ ડિઝાઇન અર્થ માં રિકર્ઝન રાખવાથી તમે સ્વ સંદર્ભ છે કે વ્યાખ્યાઓ. ફરી યાદ આવવું માહિતી માળખાં, દાખલા તરીકે, માહિતી માળખાં છે પોતાની જાતને સમાવેશ થાય છે તેમની વ્યાખ્યાઓ. પરંતુ આજે, અમે ધ્યાન કેન્દ્રિત રહ્યા છીએ ફરી યાદ આવવું કાર્યો પર. , કાર્યો ઇનપુટ્સ લેવા જણાવ્યું હતું કે દલીલો, અને કિંમત પાછી તેમના દ્વારા રજૂ આઉટપુટ અહીં આ રેખાકૃતિ. અમે શરીરના તરીકે બોક્સ લાગે પડશે સમૂહ સમાવતી કાર્ય, આ અર્થઘટન કે સૂચનો ઇનપુટ અને આઉટપુટ છે. શરીર ની અંદર નજીકથી દેખાવ ટેકિંગ કાર્ય પર કૉલ છતી કરી શકે છે અન્ય કાર્યો સાથે સાથે. આ સરળ કાર્ય, foo, લો કે ઇનપુટ તરીકે એક શબ્દમાળા લે છે અને પ્રિન્ટ કેટલા અક્ષરો કે જેઓ શબ્દમાળા છે. શબ્દમાળા લંબાઈ માટે કાર્ય strlen, જેની આઉટપુટ છે, કહેવામાં આવે છે printf માટે કોલ માટે જરૂરી છે. હવે, શું ફરી યાદ આવવું કાર્ય કરે છે ખાસ તે પોતે કહે છે. અમે આ ફરી યાદ આવવું પ્રતિનિધિત્વ કરી શકે છે આ નારંગી તીર સાથે કૉલ પાછા પોતે રહ્યાં. પરંતુ ફરીથી પોતે ચલાવવા જ કરશે અન્ય ફરી યાદ આવવું કૉલ કરવા માટે, અને અન્ય અને અન્ય. પરંતુ ફરી યાદ આવવું કાર્યો અનંત ન હોઈ શકે. તેઓ કોઈક અંત હોય છે, અથવા તમારા કાર્યક્રમ કાયમ ચાલશે. તેથી અમે તોડી રસ્તો શોધી જરૂર ફરી યાદ આવવું કોલ્સ બહાર. અમે આધાર કેસ આ ફોન કરો. આધાર કેસ જ્યારે શરત મળ્યા છે, કાર્ય કર્યા વિના આપે છે અન્ય ફરી યાદ આવવું કોલ. એક રદબાતલ કાર્ય, હાય, આ કાર્ય લો કે ઇનપુટ તરીકે પૂર્ણાંક n એ લઈ જાય છે. આધાર કેસ પ્રથમ આવે છે. N એ શૂન્ય કરતાં ઓછી, પ્રિન્ટ બાય અને છે અન્ય તમામ કિસ્સાઓમાં બદલામાં, આ કાર્ય સ્પષ્ટ મહત્તમ છાપો અને ચલાવવા કરશે ફરી યાદ આવવું કોલ. સાથે કાર્ય સ્પષ્ટ મહત્તમ માટે અન્ય કોલ એક decremented ઇનપુટ મૂલ્ય. હવે, આપણે, હાય છાપો છતાં પણ કાર્ય સમાપ્ત નહીં અમે સુધી તેના વળતર પ્રકાર પરત, આ કિસ્સામાં રદબાતલ છે. તેથી દરેક n એ આધાર કેસ કરતાં અન્ય માટે, આ કાર્ય હાય હાય આપશે n ના ઓછા 1. આ કાર્ય છતાં રદબાતલ છે, એટલે બાહ્ય રીતે અહીં પરત પ્રકાર નહીં. અમે હમણાં જ કાર્ય ચલાવવા પડશે. તેથી સ્પષ્ટ મહત્તમ ફોન (3) મહત્તમ છાપો અને સ્પષ્ટ મહત્તમ (2) (1) એક સ્પષ્ટ મહત્તમ ચલાવે છે ચલાવો સ્પષ્ટ મહત્તમ ચલાવે છે (0), કે જ્યાં આધાર કેસ સ્થિતિ મળ્યા છે. તેથી સ્પષ્ટ મહત્તમ (0) બાય છાપે છે અને આપે છે. બરાબર. તેથી હવે અમે તેના મૂળભૂત સમજી તેઓ જરૂર છે કે ફરી યાદ આવવું કાર્યો, ઓછામાં ઓછી એક આધાર કેસ સાથે સાથે એક ફરી યાદ આવવું કોલ, ચાલો એક પર ખસેડો વધુ અર્થપૂર્ણ ઉદાહરણ છે. માત્ર નહિં આપે કે એક કોઈ બાબત શું ગેરમાન્ય. માતાનો કારણદર્શી પર એક નજર ક્રિયા માં સૌથી સામાન્ય રીતે વાપરવામાં સંભાવના ગણતરીઓ. N ના કારણદર્શી દરેક બનેલો છે કરતાં હકારાત્મક પૂર્ણાંક ઓછી અને n સમાન. તેથી કારણદર્શી પાંચ 5 વખત 4 વખત છે 3 વખત 2 વખત 1 120 આપે છે. ચાર કારણદર્શી 4 વખત 3 વખત છે 2 વખત 1 24 આપે છે. અને એ જ નિયમ લાગુ પડે છે કોઈપણ હકારાત્મક પૂર્ણાંક છે. તેથી અમે કેવી રીતે ફરી યાદ આવવું લખી શકે છે કારણદર્શી ગણતરી તે કાર્ય સંખ્યાબંધ? વેલ, અમે બંને ઓળખવા માટે જરૂર પડશે આધાર કેસ અને ફરી યાદ આવવું કોલ. આ ફરી યાદ આવવું કોલ જ હશે આધાર સિવાય બધા કિસ્સાઓમાં માટે કેસ, જે અમે પડશે અર્થ એ થાય કે અમને આપશે કે પેટર્ન શોધી અમારા ઇચ્છિત પરિણામ. આ ઉદાહરણ માટે, કેવી રીતે 5 કારણદર્શી જુઓ 1 દ્વારા 2 દ્વારા 3 દ્વારા 4 ગુણાકાર સમાવેશ થાય છે અને તે ખૂબ જ ગુણાકાર અહીં જોવા મળે છે 4 કારણદર્શી વ્યાખ્યા. તેથી અમે 5 કારણદર્શી કે જુઓ માત્ર 5 વખત 4 કારણદર્શી. હવે આ પેટર્ન લાગુ પડે છે 4 માટે પણ કારણદર્શી? હા. અમે 4 કારણદર્શી સમાવે છે જુઓ ગુણાકાર 3 વખત 2 વખત 1, 3 કારણદર્શી તરીકે ખૂબ જ વ્યાખ્યા. તેથી 4 કારણદર્શી 4 વખત 3 ને સમાન હોય છે કારણદર્શી, અને તેથી પર અને તેથી આગળ અમારા પેટર્ન 1 કારણદર્શી, ત્યાં સુધી લાકડી જે વ્યાખ્યા દ્વારા 1 ને સમાન હોય છે. કોઈ અન્ય હકારાત્મક છે પૂર્ણાંકો છોડી દીધી. તેથી અમે નોંધ લીધી છે અમારા ફરી યાદ આવવું કોલ. n એ કારણદર્શી n વખત સમાન છે આ n ના કારણદર્શી 1 બાદ. અને અમારા આધાર કેસ? કે જે હમણાં જ અમારા વ્યાખ્યા હશો 1 કારણદર્શી. તેથી હવે અમે લેખિતમાં પર ખસેડી શકો છો કાર્ય માટે કોડ. આધાર કેસ માટે, અમે પડશે સ્થિતિ n એ સમકક્ષ 1, બરાબર જ્યાં અમે 1 પરત મળશે. પછી ફરી યાદ આવવું કોલ પર ખસેડવું, અમે n એ વખત પરત મળશે આ n ના કારણદર્શી 1 બાદ. હવે આપણે આ અમારી ચકાસીએ. માતાનો કારણદર્શી 4 પ્રયાસ કરો. અમારા કાર્ય પ્રતિ તે સમાન છે 4 વખત કારણદર્શી (3). કારણદર્શી (3) ને સમાન હોય છે 3 વખત કારણદર્શી (2). કારણદર્શી (2) 2 વખત સમાન છે કારણદર્શી (1), જે 1 આપે છે. કારણદર્શી (2) હવે 2 વખત 1, 2 આપે છે. કારણદર્શી (3) હવે પાછા આવી શકો છો 3 વખત 2, 6. અને છેલ્લે, કારણદર્શી (4) 4 વખત 6, 24 આપે છે. જો તમે કોઇ મુશ્કેલી સામનો કરો તો ફરી યાદ આવવું કૉલ સાથે, ડોળ કરવો કે કાર્ય પહેલેથી જ કામ કરે છે. શું હું આ દ્વારા અર્થ છે કે તમારે પાછા તમારા ફરી યાદ આવવું કોલ્સ પર વિશ્વાસ યોગ્ય કિંમતો. દાખલા તરીકે, મને ખબર છે કે જો કારણદર્શી (5) 5 વખત જેટલી જ થાય છે કારણદર્શી (4), હું વિશ્વાસ જાઉં છું કારણદર્શી (4) મને 24 આપશે. તમે, એક ચલ કારણ કે તે વિચારો કરશે, તમે પહેલેથી જ વ્યાખ્યાયિત જો કારણદર્શી (4). જેથી કોઇ પણ કારણદર્શી માટે (એન), તે છે આ n ના ઉત્પાદન અને અગાઉના કારણદર્શી. અને આ અગાઉના કારણદર્શી ફોન કરીને મેળવવામાં આવે છે n ના કારણદર્શી 1 બાદ. તમે અમલમાં મૂકી શકે છે જો હવે, જુઓ એક ફરી યાદ આવવું જાતે કામ કરે છે. તમારા ટર્મિનલ લોડ કરો, અથવા run.cs50.net, અને એક કાર્ય રકમ લખી કે પૂર્ણાંક n એ લે છે અને આપે છે આ બધા સતત હકારાત્મક રકમ n માંથી 1 માટે પૂર્ણાંકો. હું કેટલાક ની રકમનું લખાય છે તમને મદદ કરવા માટે કિંમતો અમારા. પ્રથમ, બહાર આંકડો આધાર કેસ સ્થિતિ. પછી, રકમ જુઓ (5). તમે દ્રષ્ટિએ તે વ્યક્ત કરી શકે છે અન્ય રકમ છે? હવે, શું રકમ વિશે (4)? તમે કેવી રીતે રકમ વ્યક્ત કરી શકો છો (4) અન્ય રકમ દ્રષ્ટિએ? તમે રકમ છે એકવાર (5) અને રકમ (4) અન્ય રકમો દ્રષ્ટિએ વ્યક્ત, જુઓ તમે ઓળખી શકે છે, જો રકમ (એન) માટે પેટર્ન. જો નહિં, તો થોડા અન્ય નંબરો પ્રયાસ અને તેમના રકમો માં વ્યક્ત અન્ય સંખ્યાની દ્રષ્ટિએ. અલગ માટે પેટર્ન ઓળખવા દ્વારા નંબરો, તમે તમારી રીતે પર સારી રીતે છો કોઈપણ n એ માટે પેટર્ન ઓળખાય. રિકર્ઝન એક ખરેખર શક્તિશાળી સાધન છે, તેથી અલબત્ત તે માટે મર્યાદિત નથી ગાણિતિક કાર્ય કરે છે. રિકર્ઝન ખૂબ જ અસરકારક રીતે ઉપયોગ કરી શકાય છે દાખલા તરીકે વૃક્ષો સાથે કામ કરતી વખતે. એક માટે વૃક્ષો પર ટૂંકા જુઓ વધુ સંપૂર્ણ સમીક્ષા, પરંતુ હવે , તે દ્વિસંગી શોધ વૃક્ષો યાદ ખાસ, દરેક, ગાંઠો રીતે રહે છે નીચેની અને બે નોડ પોઇન્ટર સાથે. સામાન્ય રીતે, આ દ્વારા રજૂ થાય છે એક લીટી પોઇન્ટ કર્યા પેરેંટ નોડ ડાબી બાળક નોડ અને એક માટે જમણી બાળક નોડ માટે. એક દ્વિસંગી શોધ ની માળખું વૃક્ષ પોતે સારી રીતે પૂરું પાડે ફરી યાદ આવવું શોધ. આ ફરી યાદ આવવું કોલ ક્યાં તો પસાર ડાબી અથવા જમણી નોડ, પરંતુ વધુ વૃક્ષ ટૂંકમાં કે. તમે એક ક્રિયા કરવા માટે માંગો છો દ્વિસંગી વૃક્ષ દરેક એક નોડ. તમારા વિશે જાઓ શકે છે? વેલ, તમે ફરી યાદ આવવું લખી શકે છે ક્રિયા કરે છે તે કાર્ય પિતૃ નોડ પર અને ફરી યાદ આવવું બનાવે છે એ જ કાર્ય માટે કૉલ, ડાબી માં પસાર અને યોગ્ય બાળક ગાંઠો. દા.ત. આ કાર્ય, foo, કે આ આપેલ નોડ કિંમત અને ફેરફારો 1 તેના બાળકો તમામ. નલ નોડ કારણો આધાર કેસ કાર્ય સૂચવે છે, પાછા કોઈ પણ ગાંઠો નથી કે કે પેટા વૃક્ષ છોડી દીધી. આપણે તેના લઈ જવામાં. પ્રથમ પિતૃ 13 છે. અમે 1 માટે કિંમત બદલવા માટે, અને પછી ફોન કરો અમારા ડાબી પર કાર્ય સાથે સાથે યોગ્ય રિલીઝ. આ કાર્ય, foo, ડાબી બાજુ પર કહેવામાં આવે છે પ્રથમ પેટા વૃક્ષ છે, તેથી ડાબી નોડ 1 અને foo તેમની સોંપણી કરવામાં આવશે કરશે કે નોડ બાળકો પર કહેવાય, પ્રથમ ડાબી અને પછી યોગ્ય, અને તેથી અને તેથી આગળ. અને શાખાઓ નથી કે તેમને કહેવું કોઈ વધુ બાળકોને પણ આ જ પ્રક્રિયા યોગ્ય બાળકો માટે ચાલુ રહેશે સમગ્ર વૃક્ષ ગાંઠો છે ત્યાં સુધી 1 થી તેમની સોંપણી. તમે જોઈ શકો છો, તમે મર્યાદિત નથી માત્ર એક ફરી યાદ આવવું કોલ. મેળવવા માટે કામ કરવામાં આવશે તરીકે જ રીતે ઘણા. તમે એક વૃક્ષ હતું તે તો જ્યાં દરેક નોડ ત્રણ બાળકો હતા, ડાબે, મધ્ય, અને અધિકાર? તમે કેવી રીતે foo ફેરફાર કરશે? વેલ, સરળ. જસ્ટ અન્ય ફરી યાદ આવવું કોલ ઉમેરો અને મધ્યમ નોડ નિર્દેશક પાસ. રિકર્ઝન ખૂબ જ શક્તિશાળી અને ન કરવા માટે છે ભવ્ય ઉલ્લેખ છે, પરંતુ તે એક હોઈ શકે છે પ્રથમ મુશ્કેલ ખ્યાલ, તેથી દર્દી અને તમારા સમય લે છે. આધાર કેસ સાથે શરૂ કરો. તે સામાન્ય રીતે ઓળખવા માટે સૌથી સરળ છે, અને પછી તમે કામ કરી શકો છો પાછળની ત્યાંથી. તમે પર પહોંચવાનો પ્રયાસ જરૂર ખબર તમારા આધાર કેસ છે, તેથી આવા શકે તમે થોડા સંકેતો આપે છે. એક ચોક્કસ કિસ્સામાં વ્યક્ત કરવાનો પ્રયાસ કરો અન્ય કિસ્સાઓમાં શરતો, અથવા પેટા સેટમાં. આ ટૂંકી જોવા માટે આભાર. ખૂબ જ ઓછામાં ઓછા, હવે તમે કરી શકો છો આ જેવા ટુચકાઓ સમજે છે. મારું નામ Zamyla છે, અને આ CS50 છે. હાય, આ કાર્ય લો, લે રદબાતલ કાર્ય પૂર્ણાંક, n એ, ઇનપુટ તરીકે. આધાર કેસ પ્રથમ આવે છે. N એ 0 કરતાં ઓછી, પ્રિન્ટ છે "બાય" અને વળતર.