Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
2 / 2 / 0
Регистрация: 24.04.2011
Сообщений: 70

Большое потребление памяти приложением

21.05.2015, 13:40. Показов 2044. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Как всегда нужна ваша помощь...
Почему происходит ошибка компиляции при увеличении числа N в строке "#define N=170".

Вот при таком значении N программа еще работает.
N отвечает за максимальное количество неизвестных в системе.
Но в требовании задача должна работать примерно до N = 1500.

В чем ошибка? Может просто комп не тянет?
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
#include <iostream>
#include <vector>
#include <fstream>
#include <Cstring> 
#include <math.h>
#define N 170
using namespace std;
int n, k, m;
const double pi=3.1415926536;
double eps = 0.00001;
vector <int> st(10000);
 
ifstream in;  // Ïîòîê in áóäåì èñïîëüçîâàòü äëÿ ÷òåíèÿ
ofstream out; // Ïîòîê out áóäåì èñïîëüçîâàòü äëÿ çàïèñè
 
int a[100000][1500];
double b[10000][1500];
 
void glavelem( int k, double mas[][N+1], int n, int otv[] );
int j=0;
int gen(int pos)
{ 
    if (pos == 0) 
    {
        for (int i = k-1; i >= 0; i--)
            {
                 printf("%d ", st[i]);
                
                a[j][k-i-1] = st[i];
               
                out<<"a["<<j<<"]["<<k-i-1<<"]="<<st[i]<<" "; //-pravilnaya str
             }
             j++;
             printf("\n");
             out<<"\n";
        return 1;
    }
    
    int ans = 0;
    for (int i = 0; i < n; i++) 
    {
        st[pos-1] = i;
       
        ans += gen(pos-1);
       
    }
    return ans;
}
 
int main()
{           
     in.open("in.txt");
    out.open("out.txt");
    cout<<"Vvedite p, N, M posledovatelno cherez probel:"<<endl;
    cin>>n>>k>>m;            //k=N - drobnye koeff,  n=p - prostye chisla, m - celaya chast
    float nk1 = pow(n,k);
    
    int nk = nk1;
    
    printf("%d ",nk);
    printf("\n");
     for (int i1=0; i1<100000; i1++)
         for (int j1=0; j1<1500; j1++)
         a[i1][j1]=0;
         
    printf("Total: %d ", gen(k));
    printf("\n");
 
double sum[200000];
int i,j,w,k1;
double mas[N][N+1];
double mas1[N][N+1];
 for (int i1=0; i1<200000; i1++)
     sum[i1]=0;
 
 for (int i1=1; i1<nk; i1++)
{    for (int j1=0; j1<k; j1++) 
        { 
        sum[i1]+=a[i1][j1]/pow(2,j1+1);
//        sum[i1+nk-1]-=a[i1][j1]/pow(2,j1+1);
        }
    out<<"sum["<<i1<<"]="<<sum[i1];
    out<<"\n";
//    out<<"sum["<<i1+nk-1<<"]="<<sum[i1+nk-1];
//    out<<"\n";
}
       for (i=0; i<(nk*2-2)/2; i++)
          {
                 for (j=0; j<pow(n,k+m); j++)
                   {   
                       b[i][j] = cos(2*pi*sum[i+1]*j/nk);
                       b[i+(nk*2-2)/2][j] = sin(2*pi*sum[i+1]*j/nk);
                   }
           }
       for (i=0; i<(nk*2-2); i++)
           {   
               for (j=0; j<pow(n,k+m); j++)
                     out<<b[i][j]<<" ";
               out<<endl;
           }
////////////////////////////////////////////////////////////////////////////////
 
for (j=nk*2-2;j<=pow(n,k+m)-1;j++)
{   
     for (i=0;i<nk*2-2;i++)
         mas[i][nk*2-2]=b[i][j];
     for (i=0; i<nk*2-2; i++)
     for (w=0; w<nk*2-2; w++)
         mas[i][w]=b[i][w];
         
         for (i=0; i<nk*2-2; i++)
         for (w=0; w<nk*2-1; w++)
             if (fabs(mas[i][w])<eps) mas[i][w]=0;       // zamena na 0
             
         //vivod matricy: kotoruyu nado reshat
       out<<"\n";
       out<<"j="<<j<<endl;  
      for (i=0; i<nk*2-2; i++)
      {   
          for (w=0; w<nk*2-1; w++)
              out<<mas[i][w]<<" ";        
          out<<endl;
      }  
       
// METOD GAUSSA:         
  double x[N]; //---------Êîðíè ñèñòåìû
  int otv[N]; //-------Îòâå÷àåò çà ïîðÿäîê êîðíåé
 
   //----------Ñíà÷àëà âñå êîðíè ïî ïîðÿäêó
  for (i = 0; i < nk*2-2; i++)
    otv[i] = i;
  //--------------Ïðÿìîé õîä ìåòîäà Ãàóññà
  for (k1 = 0; k1 < nk*2-2; k1++)
  {
      glavelem(k1, mas, nk*2-2, otv); //------Óñòàíîâêà ãëàâíîãî ýëåìåíòà
    
      for (w = nk*2-2; w >= k1; w--)
           mas[k1][w] /= mas[k1][k1];
      for ( i = k1 + 1; i < nk*2-2; i++ )
      for ( w = nk*2-2; w >= k1; w-- )
        {
            mas[i][w] -= mas[k1][w] * mas[i][k1];
        }
  }
  //Îáðàòíûé õîä
  for ( i = 0; i < nk*2-2; i++ )
    x[i] = mas[i][nk*2-2];
    
  for ( i = nk*2-2 - 2; i >= 0; i-- )
    for ( w = i + 1; w < nk*2-2; w++ )
      x[i] -= x[w] * mas[i][w];
      
  //-----Âûâîä ðåçóëüòàòà
  for ( i = 0; i <nk*2-2; i++ )
    for ( w = 0; w < nk*2-2; w++ )
      if ( i == otv[w] )
      { //----Ðàññòàâëÿåì êîðíè ïîïîðÿäêó
        out<<"x["<<i<<"] = "<<x[w]<<endl;
      }     
  for (int r = nk*2-2; r <= pow(n,k+m)-1; r++)
      {
          x[r]=0;
          x[j]=1;
          out<<"x["<<r<<"] = "<<x[r]<<endl;
      }              
}
     in.close();
     out.close();
     
    system("PAUSE");
    return 0;
}
//----------------------------------------------
//Îïèñàíèå ôóíóöèè
//----------------------------------------------
void glavelem(int k2, double mas[][N+1], int n2, int otv[] )
{   // in.open("in.txt");
    // out.open("out.txt");
  int i2, j2, i_max = k2, j_max = k2;
  double temp;
  //Èùåì ìàêñèìàëüíûé ïî ìîäóëþ ýëåìåíò â ñòîëáöå
j2=k2;
  for ( i2 = j2; i2 < n2; i2++ )    
      if ( fabs( mas[i_max] [j_max] ) < fabs( mas[i2] [j2] ) )
          {
            i_max = i2;
            j_max = j2;
          }
    
  //Ïåðåñòàâëÿåì ñòðîêè
  for ( j2 = k2; j2 < n2 + 1; j2++ )
  {
    temp = mas[k2][j2];
    mas[k2][j2] = mas[i_max][j2];
    mas[i_max][j2] = temp;
  }
 
//  Ïåðåñòàâëÿåì ñòîëáöû
  for ( i2 = 0; i2 < n2; i2++ )
 {
    temp = mas[i2] [k2];
    mas[i2] [k2] = mas[i2] [j_max];
    mas[i2] [j_max] = temp;
 }
 
   //  Ó÷èòûâàåì èçìåíåíèå ïîðÿäêà êîðíåé
  i2 = otv[k2];
  otv[k2] = otv[j_max];
  otv[j_max] = i2;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2015, 13:40
Ответы с готовыми решениями:

Большое потребление памяти при вызове метода
Наблюдаю очень странное поведение Visual Studio 2008. В моём проекте на C# есть один метод, который содержит большое число кода (циклы,...

nginx+php-fpm debian - большое потребление памяти
Больше потребление cached памяти на сервере. (Графиг приложен). mysql, memcached вынесены на отдельный сервер. На этом сервере стоит...

Большое потребление оперативной памяти при долгой работе
Добрый день гуру программирования. Проблема у меня такая. Приложение потребляет слишком много оперативной памяти при долгой работе....

22
15 / 15 / 4
Регистрация: 11.11.2014
Сообщений: 122
22.05.2015, 08:35
Студворк — интернет-сервис помощи студентам
Хулиган, вообще хотелось бы думать, что я умнее компилятора
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
22.05.2015, 12:51
Цитата Сообщение от Kapex Посмотреть сообщение
вообще хотелось бы думать, что я умнее компилятора
https://www.cyberforum.ru/post6037257.html
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
22.05.2015, 13:02
Зашёл в тему почитать, как кто-то оптимизирует своего убийцу ГТА-5, жрущего гигабайты оперативки...
А тут вот оно что, Михалыч! Какая-то очередная школоло-задачка про массивы!
Мне интересно, как это вообще писалось? Сначала накопипастили 200+ строк кода, не проверяя его работоспособность, а потом, когда пришло время запускать, оказалось, что даже первые строки не работают? Кто так пишет программы???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2015, 13:02

Большое потребление ОЗУ, как можно хоть немного уменьшить потребление ?
Может есть какие нибудь советы или еще что нибудь ? В основном приложение работает библиотекой jsoup и все. Парится с инета но там не...

Большое потребление STM8S-discovery.
Здравствуй, сообщество. Пытался сейчас замерить потребление платы STM8S-DISCOVERY в Halt режиме и обнаружил какие-то странности. Платка...

Большое потребление ОЗУ конкретной игрой
Доброго времени суток. Проблема вот в чём: у меня ноутбук на ОС windows 7 (3 гб ОЗУ) , игры более менее тянет, но вот одна игра в процессах...

Очень большое потребление ОЗУ не понятно чем
После получаса работы за компьютером происходит &quot;взлёт&quot; оперативки, иногда и пассиве может такое быть. Трудоёмких задач не открывал. В...

Большое потребление ресурсов процессора WebBrowser и WebSocket JS
Добрый день. Подключаюсь к серверу через веб сокет таким образом: public void Connect(WebBrowser wb) { ...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru