cine m-ar putea lamuri care este treaba cu functiile in python?
cum se formeaza?
pentru orice din programarea imperativa functiile fac acelasi lucru
input->[functie/black box]->output
https://www.techopedia.com/definition/25615/function

si o sa te contrazic cu o chestie, da e flexibil pythonul pentru ca fiind un limbaj de scripting are avantajele lui, dar puternic? nu prea, pentru ca fiind un limbaj de scripting e greoi fata de c/c++ care sunt limbaje compilate. in opinia mea cel mai puternic limbaj e c++ deoarece poti face o gramada de dracovenii prin el(de la oop la functional programming nu ai treaba) dar lumea fuge de el pentru ca pointeri.

iar chestia cu in python stochezi in liste e asa puerila afirmatia ta, in python pe langa liste mai ai tuple, dictionare sa nu mai spun de alte structuri aflate prin diferite pachete.
**Nu's nici o modalitate ușoară de a afla dimensiunea memoriei de un obiect python**. Una dintre probleme s-ar putea găsi este că Python obiecte - cum ar fi liste și dicts - ar putea avea referințe la alte obiecte python (în acest caz, ceea ce ar fi dimensiunea fi? Dimensiunea conțin dimensiunea fiecărui obiect sau nu?). Există unele indicii aeriene interne și structurile legate de tipuri de obiecte și de colectare a gunoiului. În cele din urmă, unele obiecte python non-evidente comportamente. De exemplu, listele de rezervă spațiu pentru obiecte mai mult decât au, de cele mai multe ori; dicts sunt și mai complicate, deoarece acestea pot funcționa în diferite moduri (au o punere în aplicare diferite, pentru un număr mic de chei și, uneori, ei aloca intrări).


Există o [mare parte din cod](https://code.activestate.com/recipes/544288/) (și o [actualizat mare parte din cod](https://code.activestate.com/recipes/546530/)) acolo pentru a încerca să aproxima cel mai bine dimensiunea de un piton obiect în memorie. 


De asemenea, poate doriți să verificați unele [veche descriere despre PyObject](https://mail.python.org/pipermail/python-list/2002-March/135223.html) (interne struct C, care reprezintă aproape toate python obiecte). Luand punctul a de la S4. Functia este continua in punctul a daca limitele cand x urca, respectiv coboara, la a sunt egale intre ele si cu f(a). Pe (-inf, 0), respectiv (0, inf), functia este elementara, deci continua. In 0, calculam limitele. Limita cand x urca la 0(adica limita cand x tinde la 0, x<0) este limita cand x tinde la 0 din e^x, care este 1(e^0). Limita cand x coboara la o(limita la dreapta) este limita cand x tinde la 0 din x+1, care este din nou 1. Limitele fiind egale intre ele, respectiv egale cu f(0), functia va fi continua si in 0. > 
> Se pare că prima dintre valori este interpretată ca o coloană,
> cum este asta?
> 
> 
> 


Deoarece ați primit-o la fel ca `SomeString` , în loc
de text *valoare* , cum ar fi `'SomeString'` .
Acesta este modul în care funcționează SQL - și cum funcționează și
codul normal, într-adevăr. Daca ai fi avut:



```
String foo = bar;

```

v-ați aștepta să încercați să copiați valoarea unei variabile
numite `bar` , nu-i așa? Dacă ați însemnat un șir de
trei caractere, b, a, r, ați folosi:



```
String foo = "bar";

```

Este același lucru în SQL.


Cu toate acestea, presupunând că acest SQL este construit din
valori reale, ar trebui să utilizați oricum un parametru
`PreparedStatement` cu parametri:



```
String sql = "INSERT INTO meta (title, hlcount, textcount, imgcount, linkcount)"
             + " VALUES (?, ?, ?, ?, ?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, "SomeString");
pst.setInt(2, 6);
// etc

```

În acest fel, veți evita atacurile de injecție SQL și problemele
de conversie a șirului (de exemplu, pentru date). De asemenea, vă
păstrează curățarea SQL, separând codul de date. Renunțăm la Bertrand și abordăm problema altfel:

![\small H_{n}=1+\frac{1}{2}+...+\frac{1}{n};\; H_{2}=\frac{3}{2};\: H_{3}=\frac{11}{6};\; H_{4}=\frac{25}{12};](http://latex.codecogs.com/gif.latex?%5Cinline%20%5Csmall%20H_%7Bn%7D%3D1&plus;%5Cfrac%7B1%7D%7B2%7D&plus;...&plus;%5Cfrac%7B1%7D%7Bn%7D%3B%5C%3B%20H_%7B2%7D%3D%5Cfrac%7B3%7D%7B2%7D%3B%5C%3A%20H_%7B3%7D%3D%5Cfrac%7B11%7D%7B6%7D%3B%5C%3B%20H_%7B4%7D%3D%5Cfrac%7B25%7D%7B12%7D%3B)

Se observă că pentru fiecare număr de mai sus, numitorul este par și numărătorul este impar. Presupunem că toate numerele armonice H2,H3,...,Hk,...,Hn sunt de forma ![\small \frac{2p+1}{2q},\: \:cu\; p,q\; numere\; naturale](http://latex.codecogs.com/gif.latex?%5Cinline%20%5Csmall%20%5Cfrac%7B2p&plus;1%7D%7B2q%7D%2C%5C%3A%20%5C%3Acu%5C%3B%20p%2Cq%5C%3B%20numere%5C%3B%20naturale) și arătăm că și Hn+1 respectă regula (principiul inducției tari).

![H_{n+1}=(1+\frac{1}{3}+\frac{1}{5}+...+\frac{1}{2k+1})+(\frac{1}{2}+\frac{1}{4}+...+\frac{1}{2k}),\; pentru\; n+1\; impar](http://latex.codecogs.com/gif.latex?%5Cinline%20H_%7Bn&plus;1%7D%3D%281&plus;%5Cfrac%7B1%7D%7B3%7D&plus;%5Cfrac%7B1%7D%7B5%7D&plus;...&plus;%5Cfrac%7B1%7D%7B2k&plus;1%7D%29&plus;%28%5Cfrac%7B1%7D%7B2%7D&plus;%5Cfrac%7B1%7D%7B4%7D&plus;...&plus;%5Cfrac%7B1%7D%7B2k%7D%29%2C%5C%3B%20pentru%5C%3B%20n&plus;1%5C%3B%20impar)

Dacă n+1 este par în forma lui Hn+1 apare 2k-1 în loc de 2k+1 și lucrurile se desfășoară la fel.

![H_{n}=\frac{s}{1\cdot 3\cdot 5\cdot ...\cdot (2k+1)}+\frac{1}{2}(1+\frac{1}{2}+...+\frac{1}{k})=\frac{s}{1\cdot 3\cdot 5...\cdot (2k+1)}+\frac{1}{2}H_{k}](http://latex.codecogs.com/gif.latex?%5Cinline%20H_%7Bn%7D%3D%5Cfrac%7Bs%7D%7B1%5Ccdot%203%5Ccdot%205%5Ccdot%20...%5Ccdot%20%282k&plus;1%29%7D&plus;%5Cfrac%7B1%7D%7B2%7D%281&plus;%5Cfrac%7B1%7D%7B2%7D&plus;...&plus;%5Cfrac%7B1%7D%7Bk%7D%29%3D%5Cfrac%7Bs%7D%7B1%5Ccdot%203%5Ccdot%205...%5Ccdot%20%282k&plus;1%29%7D&plus;%5Cfrac%7B1%7D%7B2%7DH_%7Bk%7D)

![H_{k}=\frac{2p+1}{2q}\Rightarrow H_{n}=\frac{s}{1\cdot 3\cdot 5...(2k+1)}+\frac{2p+1}{4q}=\frac{s}{impar}+\frac{impar}{par}=\frac{impar}{par}](http://latex.codecogs.com/gif.latex?%5Cinline%20H_%7Bk%7D%3D%5Cfrac%7B2p&plus;1%7D%7B2q%7D%5CRightarrow%20H_%7Bn%7D%3D%5Cfrac%7Bs%7D%7B1%5Ccdot%203%5Ccdot%205...%282k&plus;1%29%7D&plus;%5Cfrac%7B2p&plus;1%7D%7B4q%7D%3D%5Cfrac%7Bs%7D%7Bimpar%7D&plus;%5Cfrac%7Bimpar%7D%7Bpar%7D%3D%5Cfrac%7Bimpar%7D%7Bpar%7D)Dacă un număr este de forma ![\frac{impar}{par}](http://latex.codecogs.com/gif.latex?%5Cinline%20%5Cfrac%7Bimpar%7D%7Bpar%7D) atunci și partea lui fracționară este de forma ![\frac{impar}{par}](http://latex.codecogs.com/gif.latex?%5Cinline%20%5Cfrac%7Bimpar%7D%7Bpar%7D).  Astfel, pentru orice număr de forma ![\small \frac{impar}{impar}\; (de\; ex.\; \frac{1}{3})\; sau\; \frac{par}{impar}(de\; ex.\; \frac{2}{3})](http://latex.codecogs.com/gif.latex?%5Cinline%20%5Csmall%20%5Cfrac%7Bimpar%7D%7Bimpar%7D%5C%3B%20%28de%5C%3B%20ex.%5C%3B%20%5Cfrac%7B1%7D%7B3%7D%29%5C%3B%20sau%5C%3B%20%5Cfrac%7Bpar%7D%7Bimpar%7D%28de%5C%3B%20ex.%5C%3B%20%5Cfrac%7B2%7D%7B3%7D%29) din intervalul [0,1) nu există corespondent de forma {Hn} rezultând nesurjectivitatea funcției. Vor apare daca ai sa exerzezi in viitor. La un moment dat va trebui sa revii asupra unor lectii pentru consolidarea cunostintelor. Atunci vor aparea si alte combinatii si cuvintele care nu au aparut in prima faza. Succes! Probabil te referi la "ireducible complexity". Termenul face referire la faptul ca exista anumite "micro-bio-sisteme"  la nivelul unor microorganisme, sisteme care prin complexitatea lor sugereaza interventia unei entitati inteligente, sau a unui asa numit "creator" care a pus cap la cap diferiti constituenti ce lucreaza intr-o armonie perfecta in vederea indeplinirii unui scop. De exemplu flagelul ,prezent la diferite bacterii sau alte microorganisme unicelulare, actionat de un astfel de sistem care este destul de similar unui motoras ce functioneaza pe baza "curentilor" creati de schimbul de substante dintre celula si mediul extracelular, rezultatul fiind rotirea "coditei" asemanatoare unei elice ce propulseaza organismul printr-un mediu lichid.  

Pe scurt, termenul sugereaza ca aceste sisteme nu ar fi avut cum sa apara intamplator, treptat de-a lungul evolutiei, deoarece daca ar fi sa eliminam oricare element component, acest sistem nu ar mai functiona, si nu ar mai fi folositor in nici un fel desfasurarii vre-unei activitati. Salut Dragos,



 problema ridicata de tine se manifesta la nivel molecular de fapt.



 Voi porni de la ideea dilatarii pentru ca procesul de contractie este de fapt inversul dilatarii. Voi incerca sa iti prezint cat mai succint si cat mai schematic.



 Incalzirea inseamna transfer de caldura. Transferul de caldura inseamna de fapt transfer de energie. Transferul de energie inseamna ca atomii vor vibra mai frenetic. Vibratia crescanda presupune spatiu mai mare.



 In alta ordine de idei, energia mai mare permite atomilor sa contrapuna fortelor intermoleculare o forta crescanda. Asadar atomii nu mai pot fi fixati la fel de bine.



 In privinta apei cred ca iti poti face o impresie aici : **<http://www.iapws.org/faq1/freeze.htm>**



 In speranta ca ti-am fost de folos iti doresc o zi buna ! Probabil că ar trebui să înceapă cu un pic de teorie si exemple simple, cum ar fi [mijloc de deplasare algoritmul](http://www.gameprogrammer.com/fractal.html). Ar trebui, de asemenea, să învețe un pic despre [Zgomot Perlin](https://en.wikipedia.org/wiki/Perlin_noise) dacă sunteți interesat în generarea de grafice. Am folosit asta ca să încep cu ultimul meu an de proiect pe generarea de procedură.


[Fractali](https://en.wikipedia.org/wiki/Fractal) sunt strâns legate de generarea de procedură.


[Terragen](https://en.wikipedia.org/wiki/Terragen) și [SpeedTree](https://en.wikipedia.org/wiki/SpeedTree) vă va arăta unele posibilități uimitoare de procedură generație.


Generarea de procedură este o tehnică ce poate fi folosită în orice limbă (acesta este cu siguranta nu se limitează la limbaje procedurale, cum ar fi C, deoarece poate fi folosit în OO limbi, cum ar fi Java, și Logica limbi, cum ar fi Prolog). O bună înțelegere a recursivitate în orice limbă va consolida înțelegerea dumneavoastră de Generație de Procedură.


Ca și pentru 'grav' sau non-joc de codul de procedură generație de tehnici au fost utilizate pentru:


* simula creșterea orașelor, în scopul de a planului de management al traficului
* pentru a simula creșterea vaselor de sânge
* SpeedTree este folosit în filme și arhitectural prezentări nu stiu. Subiectul 1  

1.Formula pentru lungimea unui segment cand se cunosc coordonatele capetelor acestuia este:  

![AB=\sqrt{(x_A-x_B)^2+(y_A-y_B)^2}](http://latex.codecogs.com/gif.latex?AB=\sqrt{(x_A-x_B)^2+(y_A-y_B)^2})  

Inlocuind coordonatele, obtinem:  

![AB=\sqrt{(-6-(-1))^2+(-9-3)^2}=\sqrt{(-6+1)^2+(-12)^2}=\sqrt{(-5)^2+12^2}=\sqrt{5^2+12^2}=\sqrt{25+144}=\sqrt{169}=13](http://latex.codecogs.com/gif.latex?AB=\sqrt{(-6-(-1))^2+(-9-3)^2}=\sqrt{(-6+1)^2+(-12)^2}=\sqrt{(-5)^2+12^2}=\sqrt{5^2+12^2}=\sqrt{25+144}=\sqrt{169}=13)  

2.Utilizam aceeasi formula ca mai sus, pentru coordonatele date la acest subpunct:  

![AB=\sqrt{(a-3)^2+(-7-(-2))^2}=\sqrt{(a-3)^2+(-7+2)^2}=\sqrt{(a-3)^2+(-5)^2}=\sqrt{(a-3)^2+5^2}=\sqrt{(a-3)^2+25}](http://latex.codecogs.com/gif.latex?AB=\sqrt{(a-3)^2+(-7-(-2))^2}=\sqrt{(a-3)^2+(-7+2)^2}=\sqrt{(a-3)^2+(-5)^2}=\sqrt{(a-3)^2+5^2}=\sqrt{(a-3)^2+25})  

Stim insa deja ca lungimea lui AB este 13, deci expresia obtinuta mai sus este egala cu 13:  

![\sqrt{(a-3)^2+25}=13](http://latex.codecogs.com/gif.latex?\sqrt{(a-3)^2+25}=13)  

Expresia de sub radical este intotdeauna pozitiva, deci putem ridica la patrat fara a ne teme ca adaugam radacini in plus:  

![(a-3)^2+25=169](http://latex.codecogs.com/gif.latex?(a-3)^2+25=169)  

![(a-3)^2=144=12^2](http://latex.codecogs.com/gif.latex?(a-3)^2=144=12^2)  

Avem 2 solutii, ![a-3=12](http://latex.codecogs.com/gif.latex?a-3=12), de unde obtinem ![a=15](http://latex.codecogs.com/gif.latex?a=15) si ![a-3=-12](http://latex.codecogs.com/gif.latex?a-3=-12), de unde obtinem solutia ![a=-9](http://latex.codecogs.com/gif.latex?a=-9).  

3.Coordonatele mijlocului unui segment sunt mediile aritmetice ale coordonatelor capetelor segmentelor. Deci:  

![x_M=\frac{x_A+x_B}{2}=\frac{-7+3}{2}=\frac{-4}2=-2](http://latex.codecogs.com/gif.latex?x_M=\frac{x_A+x_B}{2}=\frac{-7+3}{2}=\frac{-4}2=-2)  

![y_M=\frac{y_A+y_B}2=\frac{9-1}{2}=\frac82=4](http://latex.codecogs.com/gif.latex?y_M=\frac{y_A+y_B}2=\frac{9-1}{2}=\frac82=4)  

4.Pentru a calcula perimetrul unui triunghi, trebuie mai intai sa stim lungimea fiecareia dintre laturile sale. Folosim aceeasi formula ca la primul exercitiu:  

![AB=\sqrt{(-4-1)^2+(9-(-3))^2}=\sqrt{(-5)^2+(9+3)^2}=\sqrt{5^2+12^2}=\sqrt{25+144}=\sqrt{169}=13](http://latex.codecogs.com/gif.latex?AB=\sqrt{(-4-1)^2+(9-(-3))^2}=\sqrt{(-5)^2+(9+3)^2}=\sqrt{5^2+12^2}=\sqrt{25+144}=\sqrt{169}=13)  

![BC=\sqrt{(1-(-8))^2+(-3-9)^2}=\sqrt{(1+8)^2+(-12)^2}=\sqrt{9^2+12^2}=\sqrt{81+144}=\sqrt{225}=15](http://latex.codecogs.com/gif.latex?BC=\sqrt{(1-(-8))^2+(-3-9)^2}=\sqrt{(1+8)^2+(-12)^2}=\sqrt{9^2+12^2}=\sqrt{81+144}=\sqrt{225}=15)  

![AC=\sqrt{(-4-(-8))^2+(9-9)^2}=\sqrt{(-4+8)^2+0^2}=\sqrt{4^2}=4](http://latex.codecogs.com/gif.latex?AC=\sqrt{(-4-(-8))^2+(9-9)^2}=\sqrt{(-4+8)^2+0^2}=\sqrt{4^2}=4)  

Perimetrul unui triunghiu este suma lungimilor laturilor sale, deci perimetrul triunghiului ABC este:  

![P_{ABC}=AB+BC+AC=13+15+4=28+4=32](http://latex.codecogs.com/gif.latex?P_{ABC}=AB+BC+AC=13+15+4=28+4=32)  

5.Daca M este simetricul punctului A fata de punctul B, atunci punctul B este mijlocul segmentului AM. La fel ca la exercitiul 3, coordonatele punctului B sunt mediile aritmetice ale coordonatelor capetelor segmentelui AM, adica:  

![x_B=\frac{x_A+x_M}{2}](http://latex.codecogs.com/gif.latex?x_B=\frac{x_A+x_M}{2}) si ![yB=\frac{y_A+y_M}2](http://latex.codecogs.com/gif.latex?yB=\frac{y_A+y_M}2).  

Inlocuim valorile cunoscute in prima ecuatie:  

![-8=\frac{-2+x_M}{2}](http://latex.codecogs.com/gif.latex?-8=\frac{-2+x_M}{2})  

![-16=-2+x_M](http://latex.codecogs.com/gif.latex?-16=-2+x_M)  

![-14=x_M](http://latex.codecogs.com/gif.latex?-14=x_M)


Acum intr-a 2-a ecuatie:  

![7=\frac{9+y_M}2](http://latex.codecogs.com/gif.latex?7=\frac{9+y_M}2)  

![14=9+y_M](http://latex.codecogs.com/gif.latex?14=9+y_M)  

![y_M=5](http://latex.codecogs.com/gif.latex?y_M=5)


6.Aplicam formula pentru lungimea segmentului utilizata si mai sus:  

![AB=\sqrt{(x_A-x_B)^2+(y_A-y_B)^2}=\sqrt{(2a-5)^2+(a-2-(3-a))^2}=\sqrt{(2a-5)^2+(a-2-3+a)^2}=\sqrt{(2a-5)^2+(2a-5)^2}=\sqrt{2(2a-5)^2}](http://latex.codecogs.com/gif.latex?AB=\sqrt{(x_A-x_B)^2+(y_A-y_B)^2}=\sqrt{(2a-5)^2+(a-2-(3-a))^2}=\sqrt{(2a-5)^2+(a-2-3+a)^2}=\sqrt{(2a-5)^2+(2a-5)^2}=\sqrt{2(2a-5)^2})  

Stim insa deja lungimea lui AB, deci expresia de mai sus este egala cu aceasta lungime:  

![\sqrt{2(2a-5)^2}=9\sqrt2](http://latex.codecogs.com/gif.latex?\sqrt{2(2a-5)^2}=9\sqrt2)  

Cantitatea de sub radical este pozitiva, deci putem ridica la patrat fara a adauga solutii in plus:  

![2(2a-5)^2=2\cdot81](http://latex.codecogs.com/gif.latex?2(2a-5)^2=2\cdot81)  

2 se simplifica:  

![(2a-5)^2=81=9^2](http://latex.codecogs.com/gif.latex?(2a-5)^2=81=9^2)  

Avem 2 solutii:  

![2a-5=9\quad=>\quad2a=14\quad=>\quad a=7](http://latex.codecogs.com/gif.latex?2a-5=9\quad=>\quad2a=14\quad=>\quad&space;a=7)  

sau  ![2a-5=-9 \quad =>\quad 2a=-4\quad =>\quad a=-2](http://latex.codecogs.com/gif.latex?2a-5=-9&space;\quad&space;=>\quad&space;2a=-4\quad&space;=>\quad&space;a=-2)