shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] 1/2 OFF TOPIC Embaralhar sequência de números


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] 1/2 OFF TOPIC Embaralhar sequência de números
Date: Thu, 14 Feb 2008 21:14:10 -0200
User-agent: Thunderbird 2.0.0.0 (X11/20070326)

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 ${arr[@]} | 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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]