shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: 1/2 OFF TOPIC Embaralhar sequência de números


From: miranda
Subject: Re: [shell-script] Re: 1/2 OFF TOPIC Embaralhar sequência de números
Date: Fri, 15 Feb 2008 09:17:30 -0300

Já que o tráfego está baixo por aqui 
Alguém pode indicar algum link que dê idéias
de como gerar o quebra-cabeças Sudoku usando shell ?
Ou mesmo se alguém quiser sugerir algoritmos por aqui ...

On Fri, 2008-02-15 at 01:34 -0200, mop wrote:
> Parla, del carrello rosso :)
> 
> O tráfego na lista está tão baixo que vou dar mais uns pitacos.
> 
> Que forma light de coibir os malandros no pabx! ;)
> 
> O código de minha mensagem anterior foi feito para colar diretamente no
> prompt e "mandar ver". Ao final o resultado desejado deveria estar em $z,
> daí era só fazer o que quisesse:
> echo $z
> echo $z|tr ' ' '\n'
> echo $z|tr ' ' '\n' >file
> etc.
> 
> Captei pela sua explanção abaixo que é realmente para considerar a diferença
> absoluta. Com essa alteração acho que normalmente aquele enunciado é 
> exeqüível.
> Haverá excessões. E se os dois últimos números remanescentes forem 373 e 369,
> como o enunciado poderá ser atendido, considerando a diferença limite?
> Será uma lista única e estática? Se sim, o tempo não parece problema.
> 
> No meu código a linha "x=${x/$y}" não traduz o que eu havia pensado, para isso
> preciso usar "x=${x/ $y / }". Funcionaria igual e o resultado seria igual, mas
> o loop não seria concluído, pois a condição false do while jamais seria
> atingida, exigindo uma interupção com ^C quando o contador em 999.
> 
> Como acredito na qualidade da saída, dentro do limite das regras estabelecidas
> e da qualidade do $RANDOM, segue prática com umas frescurinhas.
> 
> Vou tirar a apresentação do valor de $z, alterar a forma de apresentação do
> contador, "beepar" quando pronto, colocar o script em arquivo, armazenar o
> conteúdo de $z em arquivo, imprimir o nome do arquivo e o tempo de execução do
> script. A conclusão com sucesso dependerá da "SORTE", vide ressalva acima.
> 
> Eis o que aconteceu em um xterm por aqui:
> 
> ############################
> web@k7/tmp$ bash --version
> GNU bash, version 3.2.0(1)-release (i686-pc-linux-gnu)
> Copyright (C) 2005 Free Software Foundation, Inc.
> web@k7/tmp$ ls -l f
> -rw-r--r-- 1 web ppp 404 2008-02-14 23:55 f
> web@k7/tmp$ cat f
> t=`date +%s`
> F=$t.rand
> echo -n >$F||return
> c=1
> y1=1
> z=
> x=" `echo -n {1..999}` "
> while [ ${#x} -gt 1 ];do
> y=${RANDOM:2}
> y=$[10#$y]
> [ "$x" != "${x/ $y }" ]&&{
> d=$[$y-$y1];d=${d/-}
> [ $d -lt 7 ]&&continue
> z="$z $y"
> #x=${x/$y}
> x=${x/ $y / }
> y1=$y
> #echo $z
> #echo c=$[c++]
> printf "\r$[c++]"
> }
> done
> echo $z >$F
> echo " números no arquivo $F, em $[`date +%s`-$t] segundos"
> until read -n1 -s -p $'\a' -t1;do :;done
> web@k7/tmp$ . ./f
> 999 números no arquivo 1203041507.rand, em 744 segundos
> web@k7/tmp$
> #########################
> 
> 
> Não conto o $z, obtenha o seu...
> Que tal fazer um script para checar se o resultado obtido atende todas as
> cláusulas?
> Esse eu não sei fazer. :)
> 
> 
> 
> ------------------------------------------------------------------
> >From: "Cristiano Ferrari"
> >
> >Deixa eu explicar o problema. Adquirimos uma nova central telefônica
> >que permite o cadastrado de um PIN para o usuário, para que ele fique
> >liberado das restrições de acesso (ligação interurbana, celular, etc),
> >que lhes será cobrado como uso particular.
> >
> >O PIN é de 4 dígitos, mas quero usar um deles para categorizar os
> >usuários.
> >
> >Me sobram 3 dígitos, os 999 números da sequência, logo um esperto
> >começa testar o número anterior e posterior ao seu para ver o bloqueio
> >é liberado e o uso é debitado na conta de outro.
> >
> >Por isso, eu calculei que 7 números de distância mínima entre um e
> >outro seria um intervalo razoável, considerando que o cara tende a
> >testar 2 ou 3 número para cima ou para baixo do seu, +/- em sequência.
> >
> >A aleatoriedade na ordem serve apenas para evitar que se deduza uma
> >progressão, caso um orelhudo divulgue a outro o seu código.
> >
> >Será que a gente consegue um código definitivo e depurado?
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
> 
>  
> Links do Yahoo! Grupos
> 
>  
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]