Jump to content

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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By 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 -->
       
       

       
       

    • By 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
    • By 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.
    • By ryuunosuke
      Atualmente estou usando esse relógio que achei na internet:
      <SCRIPT LANGUAGE="JAVASCRIPT"> document.write("<font color='#09f' size='2' face='tahoma' >") var now = new Date(); var mName = now.getMonth() +1 ; var dName = now.getDay() +1; var dayNr = now.getDate(); var yearNr=now.getYear(); if(dName==1) {Day = "Domingo";} if(dName==2) {Day = "Segunda-feira";} if(dName==3) {Day = "Terça-feira";} if(dName==4) {Day = "Quarta-feira";} if(dName==5) {Day = "Quinta-feira";} if(dName==6) {Day = "Sexta-feira";} if(dName==7) {Day = "Sábado";} if(mName==1){Month = "01";} if(mName==2){Month = "02";} if(mName==3){Month = "03";} if(mName==4){Month = "04";} if(mName==5){Month = "05";} if(mName==6){Month = "06";} if(mName==7){Month = "07";} if(mName==8){Month = "08";} if(mName==9){Month = "09";} if(mName==10){Month = "10";} if(mName==11){Month = "11";} if(mName==12){Month = "12";} if(yearNr < 2000) {Year = 1900 + yearNr;} else {Year = yearNr;} var todaysDate =(" " + Day + ", " + dayNr + "/" + Month + "/" + Year); document.write(' '+todaysDate); </SCRIPT> <SPAN ID="Clock">00:00:00</SPAN> <SCRIPT LANGUAGE="JavaScript"> var Elem = document.getElementById("Clock"); function Horario(){ var Hoje = new Date(); var Horas = Hoje.getHours(); if(Horas < 10){ Horas = "0"+Horas; } var Minutos = Hoje.getMinutes(); if(Minutos < 10){ Minutos = "0"+Minutos; } var Segundos = Hoje.getSeconds(); if(Segundos < 10){ Segundos = "0"+Segundos; } Elem.innerHTML = Horas+":"+Minutos+":"+Segundos; } window.setInterval("Horario()",1000); </SCRIPT> Mas agora preciso de algum relogio que mostre o horário ofcial de brasília. Tentei pegar algumas coisas na internet para estudar sobre o assunto mas nao estou entendendo nada(Nem pelo ingles e pq sou meio burro msm.).
       
      Alguem pode me dar alguma funçao php sobre isso ou qualquer coisa para eu começar?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.