Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hazzard

Armazenar números de ciclos em um vetor

Recommended Posts

Olá boa noite,


Galera fiz um programinha em matlab e estou com problema (provavelmente de lógica).


Gostaria de armazenar em um vetor o número de ciclos que foram necessários para que o valor de x chegasse em 5 (os valores randômicos são entre 0 até 1 ).


Quando executei o programa o vetor ficou com valores todos iguais! Parece que ele pega apenas um valor de ciclo e replica em todas as posições dos vetores.


Ficando algo do tipo [ 22 22 22 22 22 22 22 22 22 22]

Mas estava esperando algo parecido com [ 20 25 23 20 22 21 21 27 30 30]




Fiz em C e a resposta foi a mesma.


Aceito ajuda em C também.


Espero que eu tenha sido claro na minha explicação ^_^


Grato.












clear all


clc



x = 0;

contador = 0;



for i = 1:10



while x <= 5

y = rand()

x=x+y

contador = contador +1;

end


vetor(i)= contador


end

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por thiago_brito
      Galera,
      Estou com uma questão que eu não consigo resolver. Já tentei de diversas maneiras e já pedi ajuda para alguns conhecidos, mas nada... Espero que alguém daqui possa me ajudar
       
      Estou trabalhando com Algoritmo Genético no matlab. Tenho um vetor [1 2 3 4 5] onde cada número significa um material. Mando rodar o matlab e ele me dá como melhores opções os materiais os números [5 2 4 3 1]
       
      como eu faço essa rodagem?
      Rodo o matlab 1x, ele escolhe o número 5. Vou lá e retiro todas as entradas do número 5. Rodo novamente o matlab e o novo melhor material será o 2. Faço isso para todos os outros números até que se esgotem.
       
      O que eu quero?
      Não ter que fazer todo esse processo manualmente visto que tenho 12 ou mais materiais e tenho que fazer modificações em algumas características como nº de população e entre outras coisas... Se eu fizer manualmente vai dar um trabalho gigantesco. Quero que isso seja automático. O matlab rode e ai ele vai escolher o número 5, ai ele guarda esse valor em um vetor e roda novamente, mas dessa vez sem considerar o nº 5, com isso, ele encontrará o nº 2. Guarda ele num vetor e roda novamente, mas dessa vez considerando os números 1, 3 e 4... e assim em diante

      O que tenho feito e não está dando certo?
      Da maneira que eu to fazendo não está dando certo porque o for está indo de 1 a 12.. Observe na resposta que ele considera o material de nº 5 como sendo o melhor até i = 5, depois aparecem outros... Quando tenho i = 3, por exemplo, ele já não considera o 1º e 2º materiais... a única rodagem que ele considera todos os 12 é quando i = 1
       

    • Por Nélio Junior
      estou utilizando o matlab mas a linguagem é c puro né.
       
      Eu quero simular uma onda que bate na parede de um duto e reflete. igual à imagem anexada
       

    • Por Samuel Resende Souza
      Bom Dia, gostaria de saber como resolver esse exercício de algoritmo no programa OCTAVE ou MATLAB:
      Em uma corrida dois carros estão disputando, faça um algoritmo que receba as velocidades e diga qual carro ganhou( as voltas são fixas, o valor em km/h é pedido ao usuário).
      OBSERVAÇÃO: utilizando função!

      Dados:
      Pista 5 km ( Cada volta equivale 1 km).
      Carro 1 = velocidade média( 120 km/h ) nas 3 primeiras voltas.
      velocidade média(100 km/h ) nas 2 últimas voltas.
      Carro 2= velocidade média( 150 km/h) na primeira volta.
      velocidade média( 115 km/h) na segunda e terceira volta.
      velocidade média(110 km/h) nas duas últimas voltas.

      A minha dúvida surgiu, pois a minha resolução não consegui criar a função, e sim apenas o programa principal. Caso alguém possa me ajudar me mandem o que posso corrigir para tornar meu programa uma função.

      Programação:
      Function (f)= tempo(v1,v2,v3,v4,v5) % Aqui coloquei utilizando a fórmula de distancia=velocidadextempo para encontrar o tempo.
      tempo1 = (3/v1); % O carro que tiver o menor tempo ganha
      tempo2 = (2/v2);
      tempo3 = (3/v3);
      tempo4 = (2/v4);
      tempo5 = (2/v5);

      if (tempo1+tempo2)>(tempo3+tempo4+tempo5); % Tempo 1 e 2 ( Carro 1) tempo 3,4 e 5 ( Carro 2)
      fprintf (' O carro 2 ganhou ');
      else fprintf (' O carro 1 ganhou ');
      end
      end
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.