Algoritmo Fisher-Yates shuffle
Publicado por Osama Jr. (última atualização em 31/08/2009)
[ Hits: 7.407 ]
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 $@
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Novidades Linux: Kernel 6.17, distros em ebulição e segurança em foco
Kernel ganha novos linters Rust e distros avançam com recursos de IA
Firewire resiste, Bcachefs sai: destaques Linux do dia
Kernel 6.18 em foco, betas fervilhando e avanços em IA no Linux
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Alguém que utilize o Warsaw do BB no Ubuntu 24.04 [RESOLVIDO] (6)
Fedora não reconhece James Donkey 102 Wireless Gaming Mouse (2)