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

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

Re: [shell-script] número randomico sem repetição


From: Fernando Lemes da Silva
Subject: Re: [shell-script] número randomico sem repetição
Date: Wed, 7 Jun 2006 19:33:45 -0300
User-agent: KMail/1.9.1

   Certa vez vi algo desse tipo aqui na lista e achei muito bonito.. e 
aproveitei para postar uma solução mais economica. (Se não me engano o que eu 
tinha visto era mais bonito ainda)

   seq 1 100 | while read N; do echo "${RANDOM} $N"; done | sort | head -n 30 
| cut -d' ' -f 2

   Isto irá gerar a sequencia de 1 a 100 e irá adicionar um numero aleatório 
na frente. Na sequencia ele ordena pelo numero aleatório, deixando a 
sequencia de 1 a 100 aleatória. Depois basta pegar os 30 primeiros e tirar o 
número aleatório.

   A propósito.. pegar os dois primeiros digitos do $RANDOM não é uma boa 
ideia pois isto estaria viciando a randomicidade.

   []'s

-- 
   /**********************************************
        _
       °v°    Fernando Lemes da Silva
      /(¡)\   www.koho.com.br
       ^ ^    Linux user #address@hidden

   **********************************************/


Em Quarta 07 Junho 2006 15:29, Tiago Barcellos Peczenyj escreveu:
> Desculpem pessoal
> Verifiquei que simplesmente usei o arquivo lista apenas uma vez.
> Ai vai corrigido (e mais sucinto)
> seq x y > lista.dat # cria uma lista de numeros entre x e y, opcional
> # pode-se usar ${RANDOM:a:b} se forem os numeros entre 0 e 99
> echo "" > rand.dat
> until wc -l rand.dat | grep -q 30 ; do
>       number=$(head -${RANDOM:0:2} lista.dat | tail -1) # esqueci... :/
>       grep -q $number rand.dat || echo $number >> rand.dat
> done


reply via email to

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