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: Franklin Anderson de Oliveira Souza
Subject: Re: [shell-script] número randomico sem repetição
Date: Thu, 8 Jun 2006 19:23:26 -0400

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. <address@hidden> 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]



reply via email to

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