Algoritmo Fisher-Yates shuffle
Publicado por Osama Jr. (última atualização em 31/08/2009)
[ Hits: 7.295 ]
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 $@
Removedor de arquivos vazios na pasta corrente
Converter animes em .mp4 para .avi (e outros) com qualidade perfeita
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
[AJUDA] Problemas ao atualizar BIOS da Gigabyte B550M K rev. 1.1 — “RO... (5)
Impossível ativar audio 5.1 (1)
Inicializaçao lenta (alguns processos rodando) Debian 11 Bullseye [RES... (2)