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

Рандомные числа - C++

Восстановить пароль Регистрация
 
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
23.12.2013, 08:58     Рандомные числа #1
Есть программа, которая считает функцию. На второй таблице значение точности Е должно становиться случайным от 10^-1 до 10^-7
Помогите это сделать, пожалуйста
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
#include "stdafx.h"
#include <cstdlib>
#include <cmath>
#include <cstdio>
#include <conio.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
double all_function(double, double);
 
double x_1, x_2, shag, pi;
double myfunc, func, E;
pi=3.14;
printf("Vvedite nachal'noe znachenie X: ");
scanf("%lf", &x_1);
if(x_1*x_1>pi*pi)
{
    printf("Oshibka \n");
}
else
printf("Vvedite konechnoe znachenie X: ");
scanf("%lf", &x_2);
if(x_2<0 || x_2<x_1)
{
    printf("Oshibka \n");
}
else
printf("Vvedite shag dlya X: ");
scanf("%lf", &shag);
if(shag<0)
{
    printf("Oshibka \n");
}
else
printf("\nVvedite toshnost': ");
scanf("%lf", &E);
if(E<0)
{
    printf("oshibka \n");
}
else
{
printf(" _______________________________________________________________\n");
printf("|               |               |               |               |\n");
printf("|X              |My Func        |Func           |discrepancy    |\n");
printf("|_______________|_______________|_______________|_______________|\n");
 
for(; x_1 <= x_2; x_1+=shag)
{
myfunc = all_function(x_1, E);
func = 1/sin(x_1);     
 
printf("|               |               |               |               |\n");
printf("|%-15lf|%-15lf|%-15lf|%-15lf|\n", x_1, myfunc, func, sqrt(fabs(myfunc*myfunc - func*func)));
printf("|_______________|_______________|_______________|_______________|\n");
} 
 
printf("\nVvedite ideal'noe znachenie X: ");
scanf("%lf", &x_1);
printf(" _______________________________________________________________\n");
printf("|               |               |               |               |\n");
printf("|X              |My Func        |Func           |discrepancy    |\n");
printf("|_______________|_______________|_______________|_______________|\n");
for(E = 0.1; E >= 10e-7; E /= 10)
{
myfunc = all_function(x_1, E);
func = 1/sin(x_1);
printf("|               |               |               |               |\n");
printf("|%-15lf|%-15lf|%-15lf|%-15lf|\n", E, myfunc, func, sqrt(fabs(myfunc*myfunc - func*func)));
printf("|_______________|_______________|_______________|_______________|\n");           
}   
}
system("PAUSE");
return EXIT_SUCCESS; 
}
 
 
 
double all_function(double x, double E)
{
int n, two_up = 2, n_fact = 2; 
double sum = 0, mid_sum = 0, x_up = x;
double bern(long);        
mid_sum = 2 * (1./6) * x / (double)n_fact; 
for(n_fact = 8 ,n = 1; mid_sum > E; n++)
{
      sum += mid_sum;
      two_up *= 4;
      x_up = x*x;
      n_fact *= (2*n+1) * (2*n+2);
      mid_sum = 2 * (two_up - 1) * fabs(bern(n+1)) * x_up / (double)n_fact;
}
sum += 1./x;
return sum;
}
 
double bern(long n)
{
double bink(long, long);
       if(n <= 0) return 1;
       else
       {
      double s = 0;
      for(long k = 1; k <= n; k++)
      {
      s += bink(n+1, k+1) * bern(n-k);
      }
      return -1./(n+1)*s; 
      }
}
 
double bink(long n, long k)
{
       long fact(long);
      return 1. * fact(n)/fact(k)/fact(n-k);
}
 
long fact(long x)
{
 if(x <= 1) return 1;
 else return x*fact(x-1);    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 08:58     Рандомные числа
Посмотрите здесь:

C++ Рандомные числа
Рандомные стенки в игре Змейка C++
сделать рандомные числа C++
Баг в коде(псевдо-рандомные числа) C++
C++ Рандомные числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
23.12.2013, 09:06     Рандомные числа #2
мб так)
C++
1
(1+rand()%9)/pow(10,1+rand()%7)
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
23.12.2013, 09:25  [ТС]     Рандомные числа #3
Цитата Сообщение от dzrkot Посмотреть сообщение
мб так)
C++
1
(1+rand()%9)/pow(10,1+rand()%7)
Не получилось
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
printf("\nVvedite ideal'noe znachenie X: ");
scanf("%lf", &x_1);
printf(" _______________________________________________________________\n");
printf("|               |               |               |               |\n");
printf("|X              |My Func        |Func           |discrepancy    |\n");
printf("|_______________|_______________|_______________|_______________|\n");
for(E = 0.1; E >= 10e-7; E /= 10)
{
myfunc = all_function(x_1, E);
func = 1/sin(x_1);
printf("|               |               |               |               |\n");
printf("|%-15lf|%-15lf|%-15lf|%-15lf|\n", E, myfunc, func, sqrt(fabs(myfunc*myfunc - func*func)));
printf("|_______________|_______________|_______________|_______________|\n");           
}   
}
system("PAUSE");
return EXIT_SUCCESS;
вот здесь Е должно быть случайным
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
24.12.2013, 09:11     Рандомные числа #4
сейчас придумаем что-нибудь)
Yandex
Объявления
24.12.2013, 09:11     Рандомные числа
Ответ Создать тему
Опции темы

Текущее время: 04:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru