Rubens Queiroz de Almeida
Sempre que somos chamados a participar de um bolão, quando a loto acumula, temos que enviar alguns números para montar os cartões
Este script cria, aleatoriamente, uma sequencia de 10 conjuntos de seis números, e pode ajudar a vencer os bloqueios criativos para montar tantos cartões em pouco tempo.
O segredo do script, a geração de números aleatórios, é obtida através do programa perl:
perl -e "print int(rand($lastnum+1))+$firstnum;"`
Nós invocamos a função rand do perl, passando-lhe dois argumentos: o primeiro número da sequencia (firstnum) e o último número (lastnum).
A função rand do perl, gera um número ENTRE 0 e um valor que lhe passamos como argumento. Note que na expressão $lastnum+1 passada à função rand, nós somamos mais um, visto que a função rand gera números ENTRE os limites que lhe passamos. Como nós desejamos gerar números aleatórios entre um intervalo, ao resultado gerado pela função rand, nós temos que somar o valor do primeiro número da faixa:
Adicionalmente, como eu estou interessado apenas em números inteiros, eu precedi a chamada da função rand com a diretiva int.
rand($lastnum+1))+$firstnum;
Resumindo, para o script da loteca, eu preciso de números entre 1 e 60, que são os valores possíveis.
A explicação sobre o restante do script eu incluo como comentário no próprio código.
Boa sorte :-)
#!/bin/bash
# Definição da faixa de valores para a geração
# dos números aleatórios. Esta faixa de valores
# vai de 1 até 60
firstnum=1
lastnum=60
var0=0
cartoes=10
# Todo script CGI precisa começar com uma linha
# indicando o tipo de arquivo, em nosso caso,
# html A diretiva echo vazia é usada apenas para
# criar uma linha em branco, também obrigatória
# O cabeçalho montado é bastante simples, mas
# poderiamos aqui montar qualquer tipo de cabeçalho
# html que desejarmos
echo "Content-type:text/html";
echo
echo "<HTML><BODY><TITLE>Loteca</TITLE>";
# Montamos aqui a tabela, que irá conter os números gerados
echo "<TABLE ALIGN=CENTER>";
# Temos aqui dois laços, um que controla o número
# de cartões a serem gerados, controlado pela
# variável var0, cujo valor se inicia em 0 e vai
# sendo aumentado em uma unidade a cada execução do
# laço. A montagem do cartão em si é controlada
# pelo segundo laço, através da variação das
# variáveis i e j
while [ "$var0" -lt "$cartoes" ]
do
echo "<TR>"
i=0
j=6
while [ "$i" -lt "$j" ]
do
Random=`perl -e "print int(rand($lastnum+1))+$firstnum;"`
echo -n "<TD ALIGN=RIGHT>$Random</TD>"
i=`expr $i + 1`
done
echo
var0=`expr $var0 + 1`
echo "</TR>"
done
echo "</TR>"
echo "</TABLE>"
echo "</HTML></BODY>"
// insanity
Legal cara!
Quando eu ganhar eu mando 10% pra vc!!!
Bom na loteria não sei se vai ganhar não!
Mas se um cara pega esse script e monta um programa...
Pode até ganhar umas verdinhas!
uhsddhuasdha
lol
Abraços
u.u nice
soh pra fala existe a função rand() no C tb..