Форум программистов, компьютерный форум, киберфорум
Наши страницы

затруднаюсь с решением - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить сумму квадратов чисел от 1 до введенного вами целого числа http://www.cyberforum.ru/cpp-beginners/thread777097.html
С помощью оператора WHILE напишите программу, вычисляющую сумму квадратов чисел от 1 до введенного вами целого числа.
C++ Найти сумму ряда Программирование циклических алгоритмов: http://www.cyberforum.ru/cpp-beginners/thread777095.html
C++ Реально ли написать игру ААА класса на c++ одному
Народ всем привет У меня вопрос вот мы с другом поспорили что он сможет с помощю UDK(игровой движок под C++) и 2 готовых моделек написать и анимировать игру типа Ea sports MMA с множеством приемов...
Написание класса C++
Добрый день! Задача написать класс sequence - a container class implementation. Класс sequence организован в строгом порядке, что числа следуют друг за другом. Есть header file - необходимо...
C++ Дано: n, a[n], b[n]. Используя макроопределение с аргументами , найти min элемент в каждом массиве. http://www.cyberforum.ru/cpp-beginners/thread777007.html
Дано: n, a, b. Используя макроопределение с аргументами , найти min элемент в каждом массиве. Напечатать наибольшее из min элементов.
C++ Инициализация N-мерного динамического массива Добрый день. Возникла идея написать функцию, которая инициализировала n-мерный динамический массив, что бы не писать кучу вложенных циклов. Например если мы создаем указатель на массив так: int**... подробнее

Показать сообщение отдельно
guyumsuren

затруднаюсь с решением - C++

01.02.2013, 22:07. Просмотров 350. Ответов 0
Метки (Все метки)

Ребят я написал тут прогу, я смоделировал эксперемент, пишу дипломную. Так вот у меня все работает, токо вот одно но - когда кампилирую первые значения получаю #inf тоест ДАБЛ или ЛОНГ ДАБЛ не достаточно, так вот я прочитал что в этом случае надо исползовать ГМП (в Windows-е МПИР), но это дастаточно трудно для меня, и читаю инструкции не могу ничего понять. так вот может ли кто нибудь помоч с этим ????? как решить проблемку, эти первые числа мне очень нужны. заранее спасибо. все слова с большими буквами надо перевести на англ(тут не пускает по ходу перемеживать языки)
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
#include<iostream>
#include<fstream>
#include<stdlib.h>
#include <math.h>
#include<time.h>
#include<stdio.h>
 
 
using namespace std;
 
const double q=0.75;
const int N=100;
const int m=3;
#define MIN_T 0.01
#define MAX_T 2.501
#define T_STEP 0.01
 
char seq[N];
 
void new_genseq(double b)
{
    srand(time(NULL));
    int t;
    for(int i=0; i<N; i++)
    {
        t = rand()%100;
        double x = ((double) t)/100;
        if(x>b)
        {
            seq[i]='U';
        }
        else seq[i]='A';
    }
}
 
double bpenergy(char x, char y)
{
    if((x=='A' && y=='U') || (x=='U' && y=='A'))
    {
        return-2.5;
    }
    else 
        return 0.5;
}
 
int main()
{
    int i, j, k, d;
    double Z[N][N];
    double T, sum, f, S, C;
    double azatenergia[400],jermastichan[400], entropia[400], jermunakutyun[400];
    double tstart, tstop, ttime;
    new_genseq(q);
    int ar = 0;
    tstart = (double)clock()/CLOCKS_PER_SEC;
 
    ofstream myfile;
    myfile.open ("T_f_S_C.txt");
 
    for(T= MIN_T;T<MAX_T;T+=T_STEP)
    {
        for(i=0;i<N;i++)
        {
            for(j=0;j<N;j++)
            {
                Z[i][j]=1;          
            }
        }
        for(d=m+1;d<N;d++)
        {
            for(i=0;i<N;i++)
            {
                j=i+d;
                if(j<N)
                {
                    sum = Z[i][j-1];
                    if(j-i>=m+1)
                    {
                        sum=sum+(exp(-bpenergy(seq[i],seq[j])/T))*Z[i+1][j-1];
                        
                        for(k=i+1;k<=j-m-1;k++)
                        {
                            if(k>0)
                                {
                                    sum=sum+(exp(-bpenergy(seq[k],seq[j])/T))*Z[i][k-1]*Z[k+1][j-1];
                                }
                        }
                        Z[i][j]=sum;
                    }
                    else continue;
                }
                else continue;
            }
        }
        
        f=(-T*log(Z[0][N-1])/N);
        cout<<"Z="<<Z[0][N-1]<<"     "<<"f="<<f<<"\n";
 
        jermastichan[ar] = T;
        azatenergia[ar] = f;
        ar++;
    }
    int u=(MAX_T-MIN_T)/T_STEP;
    for(i=0;i<u;i++)
    {
        S=-(azatenergia[i+1]-azatenergia[i])/(jermastichan[i+1]-jermastichan[i]);
        entropia[i]=S;
    }
    for(i=0;i<u-1;i++)
    {
        C=jermastichan[i]*(entropia[i+1]-entropia[i])/(jermastichan[i+1]-jermastichan[i]);
        jermunakutyun[i]=C;
    }
    int ar_t = 0;
    int tt = 0;
 
    for(ar_t = 1; ar_t < ar; ar_t++)
    {
        myfile << jermastichan[ar_t]<<"\t"<<azatenergia[ar_t]<<"\t"<<entropia[ar_t]<<"\t"<<jermunakutyun[ar_t]<<"\n";
 
    }
 
    myfile.close();
    tstop = (double)clock()/CLOCKS_PER_SEC;
    ttime= tstop-tstart;
    cout<<"Time"<<ttime;
    return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru