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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
guyumsuren
Сообщений: n/a
#1

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

01.02.2013, 22:07. Просмотров 340. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2013, 22:07     затруднаюсь с решением
Посмотрите здесь:

c++ c решением - C++
Given an integer number N THAT IS NOT LESS THAN 2. OUTPUT THE SMALLEST NATURAL DIVISOR OF THE N (NOT INCLUDING 1) input 15 output 3 ...

помогите с решением - C++
написать программу составления пятиугольника с вершинами вершинами (100,100), (150,100), (170,120), (150,140), (100,100). Закрасить поле с...

Сложности с решением - C++
Дана последовательность целых чисел. Разделить эту последовательность на две группы чисел с минимально отличающейся суммой чисел. Помогите...

помогите с решением задания по С++ - C++
узнать у как функцию х за формулой У=16.7х + 9.2х^2 – 1.01x^3 для х ызменимого от 1.0 к 9.9 с шагом 0.1. входящие данные: диапазон...

Задача с решением примеров - C++
Всем привет! Ребят,есть задание: написать программу,которая решает любые примеры(количество используемых чисел и знаков не ограничено...

Помогите с решением задачки на препроцессоры. С++ - C++
Условие:

Трабл с решением задания, условные операторы - C++
Здраствуйте, возникла определенная проблема при решении задания. Полагаю, не суть, что за задание, проблема вот в чем: В приведенном...

Затруднение с решением задачи на одномерный массив - C++
Здравствуйте! Дано задание: Массив содержит 7 действительных чисел. Вычислить сумму квадратов тех чисел, абсолютная величина которых...

Сложности с решением системы дифференциальных уравнений - C++
Есть вот такая система уравнений: dn/dt = 75.5*p*n-75.5*n+0.0767*c dc/dt = 75.5*n-0.0767*c Где, грубо говоря, n -...

Найти значение выражения по заданной формуле (подскажите с решением) - C++
Здание достаточно простое, но я не уверен. Надо найти F=(i=10∑100)(j=5∑50)cos(i-j). Тут просто надо сделать два цикла по i и j? Ну типа ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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