Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
curtdxpx
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 20
1

Циклические алгоритмы вычисления сумм, произведений

20.03.2016, 13:23. Просмотров 576. Ответов 4
Метки нет (Все метки)

найти число ПИ, используя произведение: ПИ/2= 2/1*2/3*4/3*4/5*6/5*6/7*...
точность для печати не менее 5-ти знаков.
во внешнем цикле выполнить вычисления для 50-ти, 100, 200, 400 сомножителей.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2016, 13:23
Ответы с готовыми решениями:

Циклические алгоритмы. Вычисление конечных сумм и произведений
Помогите написать формулу (22) на языке С++ (borland C++)

Составить программу для вычисления таблицы значений заданной функции (циклические алгоритмы)
Составить программу для вычисления таблицы значений функции: y(x)=a*x^2, для -2<x<3 ...

Вычисление сумм и произведений в C++
Дан массив a из n действительных чисел . Заполнить массив B не используя указатели , элементы...

Вычисление произведений и сумм
В=0,81 Задача №1 z=\prod_{n=1}^{20}*(sin{a}^{2}*n+b Задача №2...

Циклические алгоритмы
Здравствуйте :) У меня вопросы по двум задачам, я знаю как начинать, но не знаю как завершить :(...

4
meJevin
158 / 150 / 92
Регистрация: 18.11.2015
Сообщений: 677
Завершенные тесты: 1
20.03.2016, 15:16 2
Эммм, я конечно совсем не шарю в матане, но у меня что-то пи пополам(~3.14 / 2) не выходит никак...
0
Миниатюры
Циклические алгоритмы вычисления сумм, произведений  
meJevin
158 / 150 / 92
Регистрация: 18.11.2015
Сообщений: 677
Завершенные тесты: 1
20.03.2016, 15:22 3
Или что-то на подобии этого должно выйти?
0
Миниатюры
Циклические алгоритмы вычисления сумм, произведений  
curtdxpx
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 20
20.03.2016, 16:24  [ТС] 4
да, вот как на 2
0
meJevin
158 / 150 / 92
Регистрация: 18.11.2015
Сообщений: 677
Завершенные тесты: 1
20.03.2016, 16:40 5
Цитата Сообщение от curtdxpx Посмотреть сообщение
да, вот как на 2
Держи:
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
#define _USE_MATH_DEFINES
#include <math.h>
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <iomanip>
 
__int64 power(int a, int n, int mod) {
    __int64 power = a, result = 1;
 
    while (n) {
        if (n & 1)
            result = (result*power) % mod;
        power = (power*power) % mod;
        n >>= 1;
    }
    return result;
}
 
 
bool witness(int a, int n) {
    int t, u, i;
    __int64 prev, curr;
 
    u = n / 2;
    t = 1;
    while (!(u & 1)) {
        u /= 2;
        ++t;
    }
 
    prev = power(a, u, n);
    for (i = 1; i <= t; ++i) {
        curr = (prev*prev) % n;
        if ((curr == 1) && (prev != 1) && (prev != n - 1))
            return true;
        prev = curr;
    }
    if (curr != 1)
        return true;
    return false;
}
 
inline bool IsPrime(int number) {
    if (((!(number & 1)) && number != 2) || (number < 2) || (number % 3 == 0 && number != 3))
        return (false);
 
    if (number<1373653) {
        for (int k = 1; 36 * k*k - 12 * k < number; ++k)
            if ((number % (6 * k + 1) == 0) || (number % (6 * k - 1) == 0))
                return (false);
 
        return true;
    }
 
    if (number < 9080191) {
        if (witness(31, number)) return false;
        if (witness(73, number)) return false;
        return true;
    }
 
 
    if (witness(2, number)) return false;
    if (witness(7, number)) return false;
    if (witness(61, number)) return false;
    return true;
}
 
void perform(int num) {
    long double pi = M_PI;
 
    std::cout << "Для " << num << " сомножителей\n";
    for (double i = 0, j = 2, k = 0, o = 0, r = 0; o < num; i++) {
        if (r == 0) {
            r++;
            //std::cout << std::setiosflags(std::ios::fixed) <<
            //  std::setprecision(4) << pi << " += " << std::setprecision(0) << j << "/" << 1 << std::endl;
            pi += j / 1;
            k++;
            o++;
            continue;
        }
        if (k == 2) {
            k = 0;
            j += 2;
            //std::cout << std::setiosflags(std::ios::fixed) <<
            //  std::setprecision(4) << pi << " += " << std::setprecision(0) << j << "/" << i - 1 << std::endl;
            pi += j / (i - 1);
            k++;
            o++;
        }
        if (IsPrime(i)) {
            if (i == 2)
                continue;
            //std::cout << std::setiosflags(std::ios::fixed) <<
            //  std::setprecision(4) << pi << " += " << std::setprecision(0) << j << "/" << i << std::endl;
            pi += j / i;
            k++;
            o++;
        }
    }
 
    std::cout << std::setiosflags(std::ios::fixed) <<
        std::setprecision(5) << "pi/2 = " << pi / 2 << std::endl;
}
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    perform(50);
    perform(100);
    perform(200);
    perform(400);
 
    _getch();
    return 0;
}
Я сделал, чтобы она просто ответ выводила, но можешь убрать комментарии, и у тебя полностью все покажет консоль, правда, в неё вряд ли поместиться все.
1
20.03.2016, 16:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2016, 16:40

Циклические алгоритмы
Как реализовать данную функцию для каждого x, изменяющегося от a до b с шагом h. Значения a, b, h и...

Циклические алгоритмы
Вводится последовательность из N целых чисел (число N вводится пользователем перед вводом...

Циклические Алгоритмы
Написать программу для вычисления значения функции y=cos(x), если значения аргумента x меняются в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.