zsh: Gerando uma sequência de números pseudo-aleatórios sem repetição
Publicado por Sandro Marcell 24/02/2009
[ Hits: 10.956 ]
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
Script para conversão de videos em lote
Compactado e descompactador bem interessantee
Mudando a extensão de vários arquivos
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (14)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









