1. Дефинирайте функция (pow x n) за намиране на степен xn за n цяло число. Напишете два варианта, реализиращи рекурсивен и итеративен процес.
  2. Дефинирайте функция (powq x n) за намиране на степен xn по метода на бързото степенуване:
    $$x^n =\left\{ \begin{array}{ll}1,&n=0\\(x^{\frac n2})^2& n > 0, n\;mod\;2 = 0\\x.x^{n-1}\qquad&n\;mod\;2 = 1\end{array}\right.$$
    Решете задачата с рекурсивен процес. Помислете за домашно как ще изглежда програмата, реализираща итеративен процес.
  3. Напишете програма, която пресмята биномния коефициент $$C^n_k = \frac{n!}{k!(n-k)!}, 0\leq k \leq n$$ с рекурсивен и итеративен процес. Коя от следните рекурсивни връзки е по-ефективна за пресмятане?
    • $$C^n_k = C^{n-1}_k + C^{n-1}_{k-1}$$
    • $$C^n_k = \frac nk C^{n-1}_{k-1}$$
  4. Напишете програма, която пресмята следния безкраен ред до достигане на определена точност $$\vareps$$. Сравенте точността на вашата програма със съответните вградени функции. Помислете как може да се подобри програмата, за да изпълнява линеен, а не квадратен брой стъпки (упътване: помисляте как да не смятате общият член наново всеки път, а да използвате този от предната стъпка)
    • $$e^x = \sum_{n=0}^\infty \frac{x^n}{n!}$$
    • $$\sin(x) = \sum_{n=0}^\infty (-1)^n\frac{x^{2n+1}}{(2n+1)!}$$
    • $$\cos(x) = \sum_{n=0}^\infty (-1)^n\frac{x^{2n}}{(2n)!}$$
Последно модифициране: събота, 12 ноември 2011, 17:38