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