zsh: Gerando uma sequência de números pseudo-aleatórios sem repetição
Publicado por Sandro Marcell 24/02/2009
[ Hits: 10.981 ]
Homepage: http://sanmarcell.wordpress.com
Simples Z shell script que atráves do uso de vetores, gera uma sequência de números pseudo-aleatórios sem repetição de valores.
#!/bin/zsh -f
#
# Simples (bem simples mesmo!) gerador de numeros pseudo-aleatorios
# sem repeticao de valores.
#
# Sandro Marcell (sandro_marcell@yahoo.com.br)
# Boa Vista, Roraima - 17/02/2009
#
# Obs.:
# - O script gera valores na faixa de 1~VALOR_MAXIMO;
# - Com uma simples alteracao, e possivel fazer com que este script
# embaralhe os elementos de um vetor ;)
# - O formatador de saida 'printf' esta operando com valores na casa
# das centenas (%-4s), para utiliza-lo na casa dos milhares,va
# adicionando 1 ao valor de formatacao;
# - Script passivel de melhorias!
zmodload -i zsh/mathfunc
seed=$$
# Vetor contendo a faixa de valores utilizados para geracao da sequencia
typeset -a array
array=({1..100})
# Quantidade de interacoes a realizar:
loop=10
for ((i = 0 ; i < loop ; i++))
do
# Gera-se um valor com base na quantidade de elementos do vetor.
# Esse valor sera o indice a ser utilizado para referenciar
# elementos no vetor:
index=$((1 + int(${(w)#array} * rand48(seed))))
# Com o valor em maos, basta utiliza-lo como indice para buscar
# o elemento referenciado por ele no vetor e imprimir esse elemento
# na tela:
# print -n "$array[$index] "
printf "%-4s" $array[$index]
# E para evitar que o valor impresso seja reutilizado, basta
# remove-lo do vetor!
array[$index]=()
done
print ""
# Fim
Atualizando o banco de dados do ClamAV sem freshclam
Instalador de Pacotes em Dialog
Monitoramento automático de logs e envio por e-mail – Fácil e explicado
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Recuperando arquivos com o Photorec de discos zoados
Usando o --load-average no Gentoo para evitar OOM Kill
Instalando o COSMIC DE no Gentoo (systemd)
Ajudante para criar dicas e artigos no VOL (5)
Alguém tem que acabar com ANATEL!!! (4)









