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

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

Re: [shell-script] Sorteio de numero aleatório


From: Felipe Kellermann
Subject: Re: [shell-script] Sorteio de numero aleatório
Date: Thu, 22 Apr 2004 15:34:12 -0300 (BRT)

On Thu, 22 Apr 2004 10:55am  -0300, Marco Sinhoreli wrote:

> Eu estava procurando a mesma solução só que entre 1 e 20. Então devo
> trocar o 99 por 19?
>
> Outra dúvida, e se eu quiser embaralhar os números de 1 a 20, como posso
> fazer? Fiz um script usando a variavel $RANDOM e jogando o número em um
> array em um loop que testa quantos elementos tem no array e dentro do
> laço do loop testando se a o número já foi incluido. Percebi que leva um
> tempo relativamente grande para criar o array e muito processamento com
> os números entre 1 e 20 embaralhados. Eu queria simplificar isso.

Ae Marco,
Há um tempo eu enviei uma sugestão para essa problema para a lista.  Tu
pode dar uma olhada na discussão no histórico.  Mas a minha idéia era mais
ou menos assim -- Embaralha números de 10 a 15:

$ for i in $(seq 10 15); { printf "$RANDOM\t$i\n"; } | sort | cut -f2
14
13
15
11
10
12

Embaralhamos 6 números, usando `seq'.  O `sed' _não_ é POSIX e é apenas
uma ferramenta GNU.  Nos sistemas BSD tu encontra o `jot', e o `jot' já
tem a funcionalidade de embaralhar os números que tu quer.  Exemplo:

Quatro números aleatórios quaisquer:
$ jot -r 4
46
8
21
76

Quatro números aleatórios de 10 a 20:
$ jot -r 4 10 20
13
12
14
15

Que tal quatro caracteres aleatórios?
$ jot -r -c 4 65 90
X
P
S
N

Mas nós queremos coisas ALEATÓRIAS ou o quê?  ;-)
$ jot -r -c 300 a z | rs -g 10
vhghxuppiwxetcjywxmouvuraprtkl
lwdqvxiompkphuofdvcwusxpemcswq
ekgfgoyguahsqlhxlwckttdonhqons
mqfkycjmyqoxprnmfveawhxbiwpgsf
expqeenftrslrhjgqhkcfqhrqdujrq
addfjebthinxfqcscarpihnithbmmt
peuaicamivjcxuqbfuyrdaumrgsrvq
ialrwiotealfuabhyjrvrnhcouynfd
tyqgkwmobharfxrllwgryxwtnpmupa
vutaneyuvwtqxcgoqkymktfvkpycos

iota kiiicks aaass,

-- 
Felipe Kellermann


reply via email to

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