[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Números aleatórios
From: |
Herbert Alexander Faleiros |
Subject: |
Re: [shell-script] Números aleatórios |
Date: |
Tue, 18 Jul 2006 15:01:29 -0300 |
User-agent: |
KMail/1.9.3 |
On Tuesday 18 July 2006 13:38, Tiago Barcellos Peczenyj wrote:
> awk 'BEGIN{srand(); print (2*rand()-1)/1000}'
Olá,
tive de alterar seu exemplo p/ checar a validade do intervalo:
awk 'BEGIN{srand(); printf "%0.4f", (2*rand()-1)/1000}'
$ ./teste awk
0.0008
0.0008
0.0008
0.0008
0.0008
0.0008
0.0008
0.0008
0.0008
0.0008
Note que a qualidade randômica dos números gerados pelo awk mostrou-se péssima
aqui (são todos iguais em um intervalo muito curto de tempo), isso pode ser
contornado colocando um incômodo `sleep 2` no loop (por exemplo).
O script é o seguinte:
$ cat teste
#!/bin/sh
MAX=${2-10}
test_dc() {
echo -e "4\nk\n$RANDOM\n32767\n/\n0.002\n*\n0.001\n-\np" | dc
}
test_bc() {
echo "scale=4; $RANDOM / 32767 * 0.002 - 0.001" | bc
}
test_awk() {
awk 'BEGIN{srand(); printf "%0.4f", (2*rand()-1)/1000}'
}
echo_err() {
echo "ERR (fora do intervalo)"
}
check_range() {
test `echo $1 \<= .001 | bc` = 0 && echo_err
test `echo $1 \>= -.001 | bc` = 0 && echo_err
}
rand_loop() {
for((x=0; x<$MAX; x++)); do
tmp=`eval test$1`
echo $tmp
check_range $tmp
done
}
case $1 in
dc)
rand_loop _dc
;;
bc)
rand_loop _bc
;;
awk)
rand_loop _awk
;;
*)
echo "Usage: $0 dc|bc|awk MAX"
exit 1
;;
esac
- Re: [shell-script] Números aleatórios, (continued)
- Re: [shell-script] Números aleatórios, Eduardo Jaime Quiros Batres, 2006/07/18
- Re: [shell-script] Números aleatórios, Rafael Sanches, 2006/07/18
- Re: [shell-script] Números aleatórios, Herbert Alexander Faleiros, 2006/07/18
- Re: [shell-script] Números aleatórios, Prof. Emiliano Chemello, 2006/07/18
- Re: [shell-script] Números aleatórios, Eduardo Jaime Quiros Batres, 2006/07/19
- Re: [shell-script] Números aleatórios, Herbert Alexander Faleiros, 2006/07/18
- Re: [shell-script] Números aleatórios, Tiago Barcellos Peczenyj, 2006/07/18
- Re: [shell-script] Números aleatórios,
Herbert Alexander Faleiros <=
Re: [shell-script] somar numero, jefferson Aranha, 2006/07/12
Re: [shell-script] somar numero, Eriberto, 2006/07/12