Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
[TEMA] Functia Ackermann
Last Updated: May 24 2015 13:19, Started by
GlontzZz
, May 23 2015 12:16
·
0
#1
Posted 23 May 2015 - 12:16
Ziua buna! M-am apucat sa aprofundez recursivitatea si am dat de Functia Ackermann. Am inteles ca nu e un exemplu foarte bun pentru exemplificarea recursivitatii datorita timpului de lucru si memoriei necesare, dar am vrut sa vad ce si cum, sa imi dau seama mai bine la ce se refera, asa ca am implementat-o.
#include <iostream> using namespace std; unsigned m, n; unsigned long ackermann(unsigned x, unsigned y){ if (m == 0) return y+1; else if (n == 0) return ackermann(x-1, 1); else return ackermann(x-1, ackermann(x, y-1)); } int main(){ cout << "m="; cin >> m; cout << "n="; cin >> n; cout << "Ackermann(" << m << "," << n << ")=" << ackermann(m, n); return 0; } Acum, faza e ca daca dau orice valori astfel incat n!=0 si m!=0, primesc "stopped working" imediat dupa introducerea celei de-a doua valori. IDE folosit: Code::Blocks 13.12 Compilator: MinGW Ce fac gresit? Precizez ca si la valori gen 1, 1, programul se opreste. L.E.: In cazul in care mai era un topic asemanator, imi cer scuze, cand caut in Search stau peste 10 minute sa mi se incarce pagina. Edited by GlontzZz, 23 May 2015 - 12:17. |
#2
Posted 23 May 2015 - 12:25
GlontzZz, on 23 mai 2015 - 12:16, said:
Ce fac gresit? Daca ai face asta, tehnica ti-ar spune ce si unde faci gresit. Invata sa folosesti tehnica in avantajul tau, ca d-aia e tehnica. Ia sa vedem: [ https://i.imgur.com/AI4G6e4.png - Pentru incarcare in pagina (embed) Click aici ] interesanta valoare are y. Fiind o functie recursiva, suspectam ca e ceva in neregula cu conditia de intoarcere din adancurile recursivitatii. Ia sa vedem si backtrace-ul (comanda bt), ca sa ne confirmam ipoteza: [ https://i.imgur.com/6AyqMDT.png - Pentru incarcare in pagina (embed) Click aici ] Ipoteza confirmata. |
#4
Posted 23 May 2015 - 12:30
@dani.user, nu mi-am dat seama de asta... Mda, n-am vazut ca am pus variabilele invers... Totusi, cand introduc valori mai mari de (4, 4) se intampla acelasi lucru ca inainte, "stopped working"...
@OriginalCopy, unde pot gasi mai multe informatii despre debugging...? Nu m-am folosit de asta pana acum. Edited by GlontzZz, 23 May 2015 - 12:37. |
#5
Posted 23 May 2015 - 12:42
Ce e ala akerman ? Ce ar trebui sa arate practic aceasta functie ? Patratele dintre doua numere sau ce ar trebui sa arate, care e utilizarea ei ?
|
#6
Posted 23 May 2015 - 12:53
GlontzZz, on 23 mai 2015 - 12:30, said:
Totusi, cand introduc valori mai mari de (4, 4) se intampla acelasi lucru ca inainte, "stopped working"... KHISHCHNIK, on 23 mai 2015 - 12:42, said:
Ce ar trebui sa arate practic aceasta functie ? |
#7
Posted 24 May 2015 - 13:19
OriginalCopy, on 23 mai 2015 - 12:53, said:
E normal: http://rosettacode.o...mann_function#C Cat de primitive sunt calculatoarele din ziua de azi. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users