Pagini recente » Diferente pentru blog/combinatorics-shortlist intre reviziile 44 si 45 | Diferente pentru blog/preoni-open intre reviziile 5 si 4 | Diferente pentru blog/combinatorics-shortlist intre reviziile 22 si 23 | Diferente pentru blog/open-source intre reviziile 7 si 6 | Diferente pentru blog/metaprogramare-cu-template-uri intre reviziile 6 si 5
Nu exista diferente intre titluri.
Diferente intre continut:
*Recursivitate*
Pentru ca tipurile sunt prin definitie imutabile, nu vom putea face compilatorul sa ruleze algoritmi iterativi - nu avem cum sa il facem sa mentina o stare. Va trebui sa convertim orice lucru iterativ in ceva recursiv, cum am face la un limbaj functional (in stil lisp). Cum determinam daca un numar este prim fara sa mentinem stare? Putem sa definim o "functie" HasDivisors cu doi parametri, N si K. HasDivisors returneaza true daca vreun numar intre 2 si K il divide pe N. Astfel, un numar este prim daca HasDivisors este true pentru parametrii N si N-1. Putem implementa aceasta idee cu template-uri:
Pentru ca tipurile sunt prin definitie imuabile, nu vom putea sa facem compilatorul sa ruleze algoritmi iterativi - nu avem cum sa il facem sa mentina o stare. Va trebui sa convertim orice lucru iterativ in ceva recursiv, cum am face la un limbaj functional (in stil lisp). Cum determinam daca un numar este prim fara sa mentinem stare? Putem sa definim o "functie" HasDivisors cu doi parametri, N si K. HasDivisors returneaza true daca vreun numar intre 2 si K il divide pe N. Astfel, un numar este prim daca HasDivisors este true pentru parametrii N si N-1. Putem implementa aceasta idee cu template-uri:
== code(c) |
template <int N, int K>
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.