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

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

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


From: Fernando Lemes da Silva
Subject: Re: [shell-script] 1/2 OFF TOPIC Embaralhar sequência de números
Date: Fri, 15 Feb 2008 11:17:26 -0200
User-agent: KMail/1.9.6

   Opa.. não é por nada não, mas a complexidade (O(n)) disto poderia ser 
menor, heim? Quando já tiver 990 numeros, o numero randomico gerado terá 
somente 1% de chance de ser aceito... fora se não sobrarem no final dois 
numeros próximos (digamos 5 e 9) de forma que um deles entre como o 998o. 
número e o último nunca seja aceito.

   Acho que uma sugestão de melhora seria fazer duas listas, a de saída e a de 
números que ainda estão "dentro da urna", verificando também o caso onde o 
último número (ou os ultimos, o que também podem ser) nunca serão aceitos.

   Abraços algorítmicos,

-- 
   0010111100101010010100110100100101000111
       Fernando LEMES da Silva
       www.koho.com.br (0x43fca35b)
   0101001101001001010001110010101000101111


On Thursday 14 February 2008 9:14:10 pm Fabiano Caixeta Duarte wrote:
> Aceito sugestões de melhoria... vivendo e aprendendo :)
>
> #!/bin/bash
> count=0
> anterior=$((RANDOM%999+1))
> arr=()
> while [ $count -lt 999 ]; do
>          atual=$((RANDOM%999+1))
>          diferenca=$((anterior - atual))
>          if [ $diferenca -gt 7 -o $diferenca -lt -7 ]; then
>                  if  ! echo ${arr[@]} | grep -w $atual > /dev/null; then
>                          arr[$count]=$atual
>                          anterior=$atual
>                          ((count++))
>                          echo $atual
>                  fi
>          fi
> done


reply via email to

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