Ir para conteúdo

Arquivado

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

Recommended Posts

Boa noite,

 

Eu precisava de uma ajuda em encontrar uma lógica para resolver meu problema. Tenho certeza que qualquer programação seria possível.

 

 

Eu tenho 5 espaços.

 

_ _ _ _ _

 

Cada um desses espaços vai um número de 0 a X. Esse X é dado pelo usuário (inteiro). O problema é que tem de ser feita uma distribuição desses espaços em X. Ou seja, a soma de todos os espaços tem de ser exatamente X.

 

Exemplo:

 

1 -> 1000/01000/00100/00010/00001

2 -> 2000/11000/10100/10010/10001/02000/01100/01010/01001/00200/00110/00101/00020/00011/00002

 

E assim se segue.

 

Eu coloquei um contador que rodava como se fosse um relógio digital e ele só fazia a minha função o momento que ele somava e conseguia o X, como segue abaixo:

Do While t <> (x + 1)

    v = v + 1
    
    If v = (x + 1) Then
        m = m + 1
        v = 0
    End If

    If m = (x + 1) Then
        l = l + 1
        m = 0
        v = 0
    End If
    
    If l = (x + 1) Then
        e = e + 1
        l = 0
        m = 0
        v = 0
    End If

    If e = (x + 1) Then
        t = t + 1
        e = 0
        l = 0
        m = 0
        v = 0
    End If

    If t + e + l + m + v = x Then
	'Função...
    End If

Loop

O problema, é que quando eu colocava um X como 20 já demorava 2 segundos para me retornar o valor, cada número que aumento em x cresce exponencialmente a quantidade de cálculos e, consequentemente, o tempo. Em força bruta (como estou fazendo) não está me ajudando. Tinha o mesmo problema para 2 espaços e era super tranquilo distribuir os dados, para 3 foi um pouco mais difícil, mas consegui, agora, para 5, não consegui achar um padrão de mudança para cada algarismo.

 

Alguém teria alguma forma de me ajudar? Alguma dica de como buscar diminuir a quantidade de cálculos?

 

 

Muito obrigado de qualquer modo, att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem qual o objetivo do seu código. Eu quero dizer: você quer que as cinco variáveis atinjam o valor de X e executem uma função?

 

Seria algo como isso:

 

ssq0AMZ.png?1

 

Olha o seu código realmente faz inúmeros cálculos, fazendo ser demorada a execução.

Eu consegui reduzir um pouco do tempo, alterando a segunda linha, que ficou assim: V = X + 1

 

Se o seu objetivo é que na última condição todas as cinco variáveis realmente possuam valores distintos e se somados resultam em X, o código está errado. Você precisou zerar as variáveis, quando elas atingiram X + 1, fazendo com que percam o valor, antes de chegar na última decisão.

 

Se estiveres tentando fazer isso que falei, acho que vale a pena tentar uma outra lógica.

Me atualiza mais, aí! Acho que entendi errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Alessandro Bodão
      Fala rapaziada! Tudo legal?
       
      Estou desenvolvendo um site onde coloquei uma espécie de 'relógio' nele, onde as pessoas veem que horas são, os minutos e segundos vão atualizando automático. Até aí tudo certo...
       
      No header do site tem um título principal (h1) que começa dando bom dia. Como as pessoas vão acessar o site em horários diferentes, tive a ideia do texto atualizar automaticamente pra boa tarde ou boa noite, relativo ao intervalo de tempo do relógio, mas não sou tão bom ainda com javascript. 
    • Por Alessandro Bodão
      Fala rapaziada! Tudo legal?
       
      Estou desenvolvendo um site onde coloquei uma espécie de 'relógio' nele, onde as pessoas veem que horas são, os minutos e segundos vão atualizando automático. Até aí tudo certo...
       
      No header do site tem um título principal (h1) que começa dando bom dia. Como as pessoas vão acessar o site em horários diferentes, tive a ideia do texto atualizar automaticamente pra boa tarde ou boa noite, relativo ao intervalo de tempo do relógio, mas não sou tão bom ainda com javascript. 
       
      Como eu poderia fazer isso?
    • Por digonaweb
      Bom dia!
       
      Alguém pode me ajudar com esse script abaixo?
       
      Preciso fazer com que o link abra em uma nova janela, pois fica abrindo em um quadrado onde está fisicamente o relógio no site.
       
      <!-- clock widget start -->
       
      <script type="text/javascript">
           var css_file=document.createElement("link");
           css_file.setAttribute("rel","stylesheet");
           css_file.setAttribute("type","text/css");
           css_file.setAttribute("href","//s.bookcdn.com//css/cl/bw-cl-150x70.css");
           document.getElementsByTagName("head")[0].appendChild(css_file);
      </script>
       
      <div id="tw_1_737904741"><div style="width:150px; height:70px; margin: 0 auto;">
      <a href="https://booked.net/time/rio-de-janeiro-18486">Rio de Janeiro</a>
      <br/></div></div>
       
      <script type="text/javascript"> function setWidgetData_737904741(data){ if(typeof(data) != 'undefined' && data.results.length > 0) { for(var i = 0; i < data.results.length; ++i) { var objMainBlock = ''; var params = data.results; objMainBlock = document.getElementById('tw_'+params.widget_type+'_'+params.widget_id); if(objMainBlock !== null) objMainBlock.innerHTML = params.html_code; } } } var clock_timer_737904741 = -1; </script> <script type="text/javascript" charset="UTF-8" src="https://widgets.booked.net/time/info?ver=2&domid=209&type=1&id=737904741&scode=124&city_id=18486&wlangid=1&mode=1&details=0&background=ece0bf&color=4c4d57&add_background=ffffff&add_color=2071c9&head_color=ffffff&border=1&transparent=1"></script>
       
      <!-- clock widget end -->
       
       

       
       

    • Por karina pereira refacho
      Pessoal estou tentando fazer todas as combinação de 32 caracteres letras e numeros com apenas uma repetição exemplo abaixo
      resultado 
      c4ca4238a0b923820dca509a6f758998
      c4ca4238a0b923820dca509a6f759099
      c4ca4238a0b923820dca509a6f759100
      c4ca4238a0b923820dca509a6f759101
      nesse exemplo acima gera no maximo uma repetição fiz um codigo que vou postar abaixo mas esta dando erro eu entendo muito pouco de php ainda estou aprendendo
      <?php function gerarCobinacao($tam){ $seed = str_split('abcdef0123456789'); shuffle($seed); $rand = ''; foreach (array_rand($seed, $tam) as $k) $rand .= $seed[$k]; return $rand; } print gerarCobinacao(32); desde já agradeço a atenção de todos obrigada, no aguardo
    • Por henrique-rafael
      A situação é a seguinte:
      -Quero impedir usuários de tentarem acessar a tela de login de um cliente qualquer por força bruta, e gostaria também de evitar que ele ficasse a todo instante conectando ao meu banco de dados para verificações, mas não sei se é possível, e se for não sei como fazer no PHP.
      .
      Por exemplo:
      -Se determinado IP tentou acessar diversas vezes o meu site com intenção maliciosa, gostaria de impedir seu acesso ao site por um tempo determinado (gostaria de NÃO ter de consultar uma "lista negra" no mysql ou no htaccess).
      -Isso é possível de forma dinâmica (sem ferramentas externas, apenas código no braço mesmo em php)?
      .
      .
      O que quero realmente é que ele não faça requisições no meu mysql o tempo todo (abrindo e fechando conexão a todo instante), porém fazer isso pelo htaccess pode ser impraticavel, pois eu teria que acrescentar manualmente isso no htaccess.
×

Informação importante

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