Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
Algoritm de memoizare
Last Updated: Jul 19 2018 12:38, Started by
Ltschmer
, Jul 19 2018 12:38
·
0
#1
Posted 19 July 2018 - 12:38
Am gasit intr-o carte un foarte interesant algoritm de memoizare. Practic este vorba despre o functie (memoize) care ia ca argument functia pe care vrem sa o memoizam , si intoarce ca si valoare -> un local scope in care declaram tabelul in care tinem valorile calculate. Acest local scope intoarce ca si rezultat o functie care ia un argument.
Avem : (define (memoize f) (let ((table (make-table))) (lambda (x) (let ((seen (lookup x table))) (if (not (null? seen)) seen (let ((ans (f x))) (insert! x ans table) ans))))))unde : (make-table) este o functie care returneaza un tabel (lookup x table) este o functie care verifica daca intr-un table oarecare exista un obiect cu cheia x (insert! x ans table) este o functie care insereaza ans intr-un tabel , si ii atribuie cheia x. aceste trei functii sunt implementate in functie de limbajul folosit, vointa si imaginatia fiecaruia. sintaxa pentru let : let este folosit in general petru a creea variabile locale Ex : (let ((a 5)) (* (+ a 1) 2) )) echivalent logic cu : ( (lambda (a) (* (+ a 1) 2)) 5)iar functia care calculeaza numerele fibonacci : (define mem-fib (memoize (lambda (n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (mem-fib (- n 1)) (mem-fib (- n 2))))))) Edited by Ltschmer, 19 July 2018 - 12:49. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users