zsh: Gerando uma sequência de números pseudo-aleatórios sem repetição
Publicado por Sandro Marcell 24/02/2009
[ Hits: 10.653 ]
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
Gerenciamento do Usuario no SAMBA /
Rotina de Vacuum para banco de Dados Postgres
Script para manutenção de um servidor asterisk
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Linux Mint nao reconhece segundo monitor. (1)
Copiar uma pasta 100% fiel a original? (6)