Fiz o meu tambem ....
=================================
#!/bin/bash
#Gera 15 numeros nao repetidos para intervalo 0-25
# Para visualizar melhor faca ./programa | sort -g | cat -n
number=1
vetor[1]=1

while ((1))
do
    var=$(echo $RANDOM | cut -c 2-3)
    if [ $var -le 25 ]
    then
        count=${#vetor[*]}
        for k in $(seq $count)
        do
            if [ $var -eq ${vetor[$k]} ]
            then
                foo=false
                break
            else
                foo=true
                continue
            fi
        done

        if [ $foo = 'true' ]
        then
            number=$((count+1))
            vetor[$number]=$var
        fi
    fi

    if [ $number -eq 15 ]
    then
        break
    fi
done

for j in $(seq $number)
do
    echo ${vetor[$j]}
done
=================================


Em 07/06/06, Alain M. <[EMAIL PROTECTED]> escreveu:
>
> Pelo que eu me lembro da maemática esta solução é correta...
> a outra realmente pode ter distorções
>
> Grato,
> Alain
>
> Fernando Lemes da Silva escreveu:
>
> >    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
> >
> 
>



-- 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GS d- s+:+ a- C++ UL++++ P! L++++ E--- W++ N++ o-- K--- w---
O-- M+ V- PS+ PE++ Y+ PGP--- t--- 5- X++ R--- tv+++ b++ DI- D++
G+++ e+++ h+ r+ y+++
------END GEEK CODE BLOCK------


[As partes desta mensagem que não continham texto foram removidas]



---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
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

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a