Форум программистов, компьютерный форум CyberForum.ru

n>=a в степени k - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму элементов массива, которые больше своих "соседей" справа и слева http://www.cyberforum.ru/cpp-beginners/thread162561.html
В массиве из N элементов найти сумму тех элементов, которые больше своих "соседей" справа и слева.
C++ OpenMP, создание потоков В инете нашел много примеров по распараллеливание циклов, но никак не могу понять, как просто написать чтобы конкретная функция выполнялась в отдельном потоке? int main() { #pragma omp parallel { start_log("gsd", 34, "link", "proj"); } #pragma omp parallel { http://www.cyberforum.ru/cpp-beginners/thread162552.html
Класс комплексных чисел C++
Ребят, помогите пожалуйста написать класс комплексных чисел... Я плохо разбираюсь в объектно-ориентированном программировании, учусь, покажите плиз!
C++ Программа работы с дробями (консоль)
Десятичные дроби. Нужно чтобы программа умела: делить, умножать, складывать и вычитать и построена обязательно на классах, код не мой и разобраться в нём довольно трудно, плюс "консоль" что не мой конёк.... Вот код который у меня есть, но он не работает. Помогите кто чем может. P.S. Код был написан на MS Visual C++в отличие от привычного мне "Borland'a/CodeGear #include <iostream> #include...
C++ Наследование, классы, хеширование http://www.cyberforum.ru/cpp-beginners/thread162517.html
есть у кого простые задачи на эти темы? у меня задания нет, нужны любые... по поиску полазил- не нашёл ничего лёгкого=(
C++ Самоудаление программы возможно ли, удаление самой себя проги сразу после запуска, на крайняк по окончанию работы, и как это осуществить? подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
02.09.2010, 00:46     n>=a в степени k
Вот программка для вычисления корней n-ой степени (n - целое) школьным методом... Точность, правда, не слишком велика (в среднем около 12-ти верных знаков), но, думаю, для решения поставленной задачи сойдёт...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <stdio.h>
 
#define epsilon 0.00000000000001
 
double myabs(double A);
double myfact(int n);
double mypow(double a, int k);
double ex(double x);
 
double myabs(double A)
{
    return (A >= 0) ? A : -A;
}
 
double myfact(int n)
{
    double res = 1.0;
    int i;
 
    if (n == 0 || n == 1)
        return 1.0;
 
    for (i = 2; i <= n; i++)
        res *= i;
 
    return res;
}
 
double mypow(double a, int k)
{
    double b = 1;
    int i;
    
    for (i = 0; i < myabs((double)k); i++)
        b *= a;
    
    if (k < 0)
        return 1 / b;
 
    return b;
}
 
double ex(double x)
{
    double res = 1;
    double xn;
    int n = 1;
 
    do
    {
        xn = mypow(x, n) / myfact(n);
        res += xn;
        n++;
    }
    while (myabs(xn) > epsilon);
 
    return res;
}
 
double lnx(double x)
{
    double res = 0;
    double xn;
    double z = (1 - x) / (1 + x);
    int k;
    int n = 1;
 
    do
    {
        k = 2 * n - 1;
        xn = mypow(z, k) / k;
        res += xn;
        n++;
    }
    while (myabs(xn) >= 4.0 * epsilon);
 
    return -2.0 * res;
}
 
int myroot(double x, int y, double *res)
{
    double a, b, c;
 
    if (y == 0)
        return 1;
 
    if (y % 2 == 0 && x < 0)
        return 2;
 
    if (x == 0)
    {
        *res = 0.0;
        return 0;
    }
    
    if (x < 0)
    {
        *res = -ex(1 / (double)y * lnx(-x));
        return 0;
    }
    
    *res = ex(1 / (double)y * lnx(x));
    return 0;
}
 
int main()
{
    double x, y;
    double res;
    int err;
    
    while (1)
    {
        printf("Dlya vihoda nazhmite \"Ctrl + C\"\n");
        printf("Vvedite x: ");
        scanf("%lf", &x);
        printf("Vvedite y: ");
        scanf("%lf", &y);
 
        if ((err = myroot(x, y, &res)) == 1)
        {
            printf("y ne mozhet bit' raven 0!\n");
            continue;
        }
        else
        {
            if (err == 2)
            {
                printf("Pri vvedionnom y x ne mozhet bit' otricatel'nim!\n");
                continue;
            }
            else
            {
                printf("x ^ (1 / y) = %.10f\n", res);
                continue;
            }
        }
    }
    
    return 0;
}
Добавлено через 6 минут
Да... Скорось у него ужасная, корень 8 степени из 25876 вычислял несколько минут...

Добавлено через 1 минуту
Так вот я задался вопросом, какие алгоритмы используются в калькуляторах, системах компьютерной математики, да и в остальных подобных штуках для того же вычисления корня?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru