Ir ao conteúdo
  • Cadastre-se

MATHEUS DIAS DE CARVALHO

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

2
  1. Bom dia pessoal, estou com problema na hora de compilar o seguinte código quando utilizo a biblioteca #vector, vale ressaltar que os vetores vivasP e vivasQ são bidimensionais e o row é unidimensional. Pelos meus testes o problema é como estou utilizando o "for", talvez tenha uma outra forma de fazer essa operação. Obrigado desde já. else{ uniform_int_distribution<int> dist11(1,P); r11=dist11(mt); uniform_int_distribution<int> dist12(1,Q); r12=dist12(mt); vector<int> row; //cria um vetor vazio row=vivasP[r11-1]; for(i=0;i<vivasQ[r12-1].size()-1;i++){ row.push_back(vivasQ[r12-1][i]); } P=P-1, Q=Q-1, L=L+1; h2=P*M1, h3=P*M2, h4=Q*M2, h5=Q*M1, h8=P*X, h10=Q*X, h12=P*(P-1)/2, h13=Q*(Q-1)/2, h14=P*Q; a2=h2*c2, a3=h3*c3, a4=h4*c4, a5=h5*c5, a8=h8*c8, a10=h10*c10, a12=h12*c12, a13=h13*c13, a14=h14*c14; a0=a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13+a14; } adicionado 41 minutos depois Desculpa pessoal, acabei de encontrar o erro, era numa outra parte do código. Aí gerava problemas nesse for, podem fechar o tópico. Obrigado.
  2. Resolvido gente, troquei a biblioteca list pela vector... Obrigado!!
  3. O trecho com comentário (\\) é onde deve ser feita a alteração!! #include <iostream> #include <random> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include <unistd.h> #include <list> using namespace std; int main(void){ short int r1,r2; float r3,r4,r5,NA,k1,k2,k3,k4,h1,h2,h3,h4,I,R,M,P,L,a1,a2,a3,a4,a0,c1,c2,c3,c4,tresidencia,t,tau,V; std::list<int> vivas; std::list<int> mortas; std::list<int>::iterator it; FILE *arquivo; arquivo=fopen("teste.txt","w"); if(arquivo==NULL){ printf("Não foi possível abrir o arquivo"); exit(0); } tresidencia=1; V=pow(10,-16); I=602000; R=0; M=602000000; P=0; L=0; NA=6.02*pow(10,23); k1=pow(10,-4); k2=100; k3=100; k4=pow(10,6); c1=k1; c2=k2/(V*NA); c3=k3/(V*NA); c4=2*k4/(V*NA); h1=I; h2=R*M; h3=P*M; h4=P*(P-1)/2; a1=h1*c1; a2=h2*c2; a3=h3*c3; a4=h4*c4; a0=a1+a2+a3+a4; random_device rd; mt19937 mt(rd()); uniform_int_distribution<int> dist(1,1000); for (t=0;t<tresidencia;t=t+tau) { r1=dist(mt); r2=dist(mt); fprintf(arquivo,"%.8f %d\n ", t,R); tau=(1/a0)*log (1001/r1); if(a0*r2/1000<a1){ I=I-1; R=R+2; h1=I; h2=R*M; a1=h1*c1; a2=h2*c2; a0=a1+a2+a3+a4; } else if (a0*r2/1000<a1+a2){ R=R-1; M=M-1; P=P+1; vivas.push_front (1); h2=R*M; h3=P*M; h4=(P*(P-1))/2; a2=h2*c2; a3=h3*c3; a4=h4*c4; a0=a1+a2+a3+a4; } else if (a0*r2/1000<a1+a2+a3){ M=M-1; uniform_int_distribution<int> dist2(1,vivas.size()); r3=dist2(mt); // Nessa parte do código tenho que adicionar uma unidade a casa r3 da lista, se fosse um vetor o que equivalente seria (v[r3]=v[r3]+1) h2=R*M; h3=P*M; a2=h2*c2; a3=h3*c3; a0=a1+a2+a3+a4; } else{ P=P-2; L=L+2; uniform_int_distribution<int> dist2(1,vivas.size()); r4=dist2(mt); r5=dist2(mt); it = vivas.begin(); advance(it,r4-1); mortas.splice (mortas.begin(),vivas, it); if(r4>r5){ it = vivas.begin(); advance(it,r5-1); mortas.splice (mortas.begin(),vivas, it); } else{ it = vivas.begin(); advance(it,r5-2); mortas.splice (mortas.begin(),vivas, it); } h3=P*M; h4=P*(P-1)/2; a3=h3*c3; a4=h4*c4; a0=a1+a2+a3+a4; } } fclose(arquivo); system("pause"); return 0; }
  4. Olá pessoal, estou usando a biblioteca <list> para organizar um conjunto de valores, porém não estou conseguindo fazer uma alteração num valores específico da lista. Por exemplo minha lista é 1 2 3 4 5, aí quero somar 1 na quarta posição para a lista ser 1 2 3 5 5. Alguém pode me ajudar? Detalhe: não sei qual valor está na quarta posição, mas sei que quero adicionar uma unidade a ele.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...