[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.