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

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

Re: 1/2 OFF TOPIC Embaralhar sequência de números


From: mop
Subject: Re: 1/2 OFF TOPIC Embaralhar sequência de números
Date: Thu, 14 Feb 2008 01:09:30 -0200

Eu achei 1 ON (0 OFF)!

Parece uma daquelas  "tarefinhas para casa"... 
Ôoobaaaa, acho que vou fazer; mas não sei explicar. ;)

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}
  y1=$y
  echo $z
  echo c=$[c++]
 }
done



Caso seja algo sério:
- o código acima usa apenas o shell bash, sem arquivos
- é bem lento e pode estar bugado
- não garanto nada, nem a randomicidade
- com a regra da "diferença limite" ela já está quebrada
- essa restrição impede a realização do que foi pedido
- usei o valor modular da diferença só para...


Não foi tão divertido, parece apenas uma "pegadinha numérica". :(

Pelo menos a MINHA consciência continua em paz e brinquei um pouco de
shell! :)



------------------------------------------------------------------
>From: "Cristiano Ferrari"
>Tenho uma seqüência de 999 números, que vão de 1 a 999.
>
>Preciso de embaralhar estes números e gerar uma nova sequência numa
>ordem aleatória em que a diferença entre cada número e seu anterior
>não seja menor que 7.
>
>Entretanto, na nova seqüência é necessário que existam todos os 999
>números, sem repetições nem omissões.



reply via email to

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