Cristiano Ferrari escreveu:
> Pessoal, boa noite.
> 
> A dúvida talvez seja mais matemática do que relativa a shell, mas como
> diz o velho deitado: "não pergunte de dá para fazer em shell, pergunte
> como fazer em shell", pergunto:
> 
> Tenho uma seqüência de 999 números, que vão de 1 a 999.
> 
> Preciso de embaralhar estes números e gerar uma nova sequência numa
> ordem aleatória em que a diferença entre cada número e seu anterior
> não seja menor que 7.
> 
> Entretanto, na nova seqüência é necessário que existam todos os 999
> números, sem repetições nem omissões.
> 
> Como fazer?

Já que não é "dever de casa", segue o script de mão beijada ;)

Aceito sugestões de melhoria... vivendo e aprendendo :)

#!/bin/bash

count=0
anterior=$((RANDOM%999+1))
arr=()
while [ $count -lt 999 ]; do
         atual=$((RANDOM%999+1))
         diferenca=$((anterior - atual))
         if [ $diferenca -gt 7 -o $diferenca -lt -7 ]; then
                 if  ! echo [EMAIL PROTECTED] | grep -w $atual > /dev/null; then
                         arr[$count]=$atual
                         anterior=$atual
                         ((count++))
                         echo $atual
                 fi
         fi
done


-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP

Responder a