Algoritmo Fisher-Yates shuffle
Publicado por Osama Jr. (última atualização em 31/08/2009)
[ Hits: 7.536 ]
Homepage: Não tenho
Uma versão em shell script do algoritmo Fisher-Yates shuffle (também conhecido como Knuth-Shuffle). Essa versão não é lá muito eficiente devido às limitações da variável $RANDOM.
Mais detalhes: http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
P.S.: Obrigado SMarcell pelas dicas! ;)
#!/bin/bash
#
# "Implementação" em Shell Script do algoritmo Fisher-Yates shuffle.
# Autor: /bin/laden - 24/08/2009.
#
# Uso: fisher-yates-shuffle <valores>
# Ex.: ./fisher-yates-shuffle 0 1 2 3 4 5 6 7 8 9
#
# Mais detalhes: <man bash> ou <www.google.com> =P
#
# Obs.: Implementação pouco eficiente devido a limitação
# da variável RANDOM.
function fisher-yates-shuffle {
RANDOM=$$
declare -a array=($@)
declare -i k n=${#array[@]}
while [ $n -ge 0 ]
do
let "k = RANDOM % (n + 1)"
swap+=(${array[$k]})
array[k]=${array[$n]}
array[n]=$swap
let "n--"
done
echo "${swap[@]}" && return 0
}
fisher-yates-shuffle $@
Desenvolvimento Java Para para máquinas "leves" (ou pra quem não quer eclipse, :P)
Checar a carga da bateria (modo texto) com barra de status versão 1.0
Configurando interfaces de rede
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? (8)
Quais licenças open source têm valor jurídico? (7)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (1)









