sábado, 27 de fevereiro de 2010

Probabilidades na Mega-Sena

Probabilidade de acertar a Mega-Sena:

Nos 60 números da Mega-Sena é possível ter C(60,6) combinações diferentes, que são os 60 elementos tomados 6 a 6. Ou seja, é possível formar 50.063.860 jogos diferentes e este é o espaço amostral. Então a probabilidade de ganhar, acertando os 6 números, é de 1 em 50.063.860.


Probabilidade de acertar a quina na Mega-Sena:

Para formar uma quina em um jogo com 6 números existem 6 ( C(6,5) ) combinações diferentes, que são os 6 elementos tomados 5 a 5. Isolando a quina, a sexta bola que sobra pode ser trocada por qualquer uma das 54 bolas, ou 54 combinações ( C(54,1) ), que não foram sorteadas pois o resultado não será alterado. Então o número de combinações diferentes para se formar uma quina são 6 x 54 ( C(6,5) x C(54,1) ). Dividindo este resultado pelo espaço amostral retorna a probabilidade de acertar a quina, que é 1 em 154.518.


Probabilidade de acertar a quadra na Mega-Sena:

Para formar uma quadra em um jogo com 6 números, existem 15 ( C(6,4) ) combinações diferentes, que são os 6 elementos tomados 4 a 4. Isolando a quadra, as duas bolas que sobram podem ser trocadas por qualquer outras duas das 54 bolas, ou 1431 combinações ( C(54,2) ), que não foram sorteadas pois o resultado não será alterado. Então o número de combinações diferentes para se formar uma quadra são 15 x 1431 ( C(6,4) x C(54,2) ). Dividindo este resultado pelo espaço amostral retorna a probabilidade de acertar a quadra, que é 1 em 2332.


Se apostar 7 números, as chances são:

Apostando 7 números, o número de combinações para formar jogos de 6 números são 7 ( C(7,6) ). Dividindo este resultado pelo espaço amostral retorna a probabilidade de acertar os 6 números da Mega-Sena, que é 1 em 7.151.980.


Se apostar 7 números, as chances para a quina são:

Para formar uma quina em um jogo com 7 números, existem 21 ( C(7,5) ) combinações diferentes, que são os 7 elementos tomados 5 a 5. Isolando a quina, a sexta bola que sobra pode ser trocada por qualquer uma das 53 bolas, ou 53 combinações ( C(53,1) ), que não foram sorteadas pois o resultado não será alterado. Então o número de combinações diferentes para se formar uma quina são 21 x 53 ( C(7,5) x C(53,1) ). Dividindo este resultado pelo espaço amostral retorna a probabilidade de acertar a quina, que é 1 em 44.981.


Se apostar 7 números, as chances para a quadra são:

Para formar uma quadra em um jogo com 7 números, existem 35 ( C(7,4) ) combinações diferentes, que são os 7 elementos tomados 4 a 4. Isolando a quadra, as duas bolas que sobram podem ser trocadas por qualquer outras duas das 53 bolas, ou 1378 combinações ( C(53,2) ), que não foram sorteadas pois o resultado não será alterado. Então o número de combinações diferentes para se formar uma quadra são 35 x 1378 ( C(7,4) x C(53,2) ). Dividindo este resultado pelo espaço amostral retorna a probabilidade de acertar a quadra, que é 1 em 1038.


Se apostar 8 ou até 15 números, as chances são:

A forma de cálculo para as próximas quantidades de números apostados continua a mesma. Apostando 8 números, o número de combinações para formar jogos de 6 números são 28 ( C(8,6) ). Dividindo este resultado pelo espaço amostral retorna a probabilidade de acertar os 6 números da Mega-Sena, que é 1 em 1.787.995. E apostando 15 números, o número de combinações para formar jogos de 6 números são 5005 ( C(15,6) ). Dividindo este resultado pelo espaço amostral retorna a probabilidade de acertar os 6 números da Mega-Sena, que é 1 em 10.003.



As chances para a quina e quadra são:

Também da mesma forma que os cálculos anteriores. Para cada bola a mais na aposta, será uma bola a menos nas restantes. Assim, a probabilidade de acertar a quina com um jogo de 8 números é 1 em 17.192 e a probabilidade de acertar a quadra com um jogo de 8 números é 1 em 539.



A probabilidade de acertar a quina com um jogo de 15 números é 1 em 370 e a probabilidade de acertar a quadra com um jogo de 15 números é 1 em 37.



Boa sorte!

segunda-feira, 22 de fevereiro de 2010

Problema de Lógica: Baldes com água

Atenção, resposta após o problema.

Num acampamento militar, o sargento ordenou ao soldado que ele fosse ao poço pegar exatamente quatro litros de água. O sargento entregou ao soldado um balde com a capacidade para cinco litros e outro com capacidade para três litros. O que o soldado deve fazer para entregar ao sargento os exatos quatro litros de água exigidos?





RESPOSTA





Encher o menor balde até a boca. Esvaziar o conteúdo do menor balde no maior. Encher novamente o menor balde e jogar seu conteúdo no maior até que este fique cheio e o primeiro com apenas 1 litro. Esvaziar o maior balde, jogar o conteúdo do menor balde no maior, encher o menor balde e novamente esvaziar o conteúdo do menor balde no maior.

quarta-feira, 17 de fevereiro de 2010

O segredo de descobrir o número pelas cartelas mágicas

Uma mágica matemática bastante conhecida é a de descobrir um número, que foi escolhido por outra pessoa e que está presente em pelo menos uma das cartelas fornecidas, contendo conjuntos numéricos. Simplesmente uma pessoa escolhe um número qualquer nas cartelas, depois diz em quais cartelas o número aparece e rapidamente o "mágico" diz o número que foi escolhido.

Vamos tomar por exemplo os conjuntos numéricos abaixo. Estes conjuntos contém números de 1 à 50 distribuídos entre eles. Com alguns números aparecendo em dois ou mais conjuntos e alguns números não aparecendo em determinados conjuntos:

1) 01, 03, 05, 09, 07, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49.

2) 02, 03, 06, 07, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31, 34, 35, 38, 39, 42, 43, 46, 47, 50.

3) 04, 05, 06, 07, 12, 13, 14, 15, 20, 21, 22, 23, 28, 29, 30, 31, 36, 37, 38, 39, 44, 45, 46, 47.

4) 08, 09, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31, 40, 41, 42, 43, 44, 45, 46, 47.

5) 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 48, 49, 50.

6) 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50.

A solução é: Quando uma pessoa escolhe um número e diz em quais cartelas o número aparece, o número escolhido é igual ao somatório do primeiro número de cada cartela em que o número pertence, ou seja, se foi escolhido o número 22, logo foi dito que ele está nas cartelas de nº 2, 3 e 5. Então o número escolhido é 2+4+16 = 22.

Para poder realizar esta mágica é preciso distribuir os números fazendo a conversão deles para a base 2. Os conjuntos são formados de acordo com a posição dos algarismos 0 e 1 no número em base binária.

O conjunto nº 1 recebe os números que contenham o algarismo 1 na posição 2^0 em sua representação binária. O conjunto nº 2 recebe os números que contenham o algarismo 1 na posição 2^1. Da mesma forma é formado os conjuntos seguintes, finalizando com o conjunto nº 6, que recebe os números que contenham o algarismo 1 na posição 2^5. O algarismo 0 indica que o número não pertence ao conjunto desta posição.

Assim, voltando ao exemplo com o número 22, onde sua representação binária é 010110. Visualizando da direita para a esquerda, do algarismo menos significativo para o mais significativo, o algarismo 1 aparece nas posições 2^1, 2^2 e 2^4, portanto o número 22 vai para os conjuntos nº 2, 3 e 5. O zero nas posições 2^0, 2^3 e 2^5 indica que o número 22 não vai para os conjuntos nº 1, 4 e 6.

Um truque simples mas que causa uma grande surpresa na adivinhação.

sábado, 13 de fevereiro de 2010

Compactando uma Imagem de Desktop Virtual do VirtualBox

Uma Imagem de Desktop Virtual (VDI) é o nome do formato padrão de armazenamento para os recipientes do VirtualBox. São os discos virtuais onde estão contidas as máquinas virtuais. Basicamente é um arquivo imenso que equivale a uma unidade de armazenamento inteira, por exemplo um disco rígido.

Uma VDI pode ser dinamicamente expansível, isto é, seu tamanho cresce de acordo com o espaço ocupado pelo sistema virtualizado em seu interior. Entretanto quando é liberado algum espaço dentro do sistema virtualizado, ao apagar um arquivo por exemplo, o tamanho do arquivo VDI não decresce.

Do contrário de outras ferramentas de virtualização, que possuem na interface gráfica o comando para compactar os discos virtuais, no VirtualBox temos que recorrer à linha de comando. Para fazer isso primeiro encerre a execução da máquina virtual e após, execute em um terminal o comando exemplificado abaixo:

VBoxManage modifyhd sua_imagem.vdi --compact

Para a compactação ser eficiente é necessário zerar o espaço livre da unidade de disco virtual. Então antes de tudo faça isso dentro da máquina virtual. Se o sistema virtualizado for Windows existe o utilitário SDelete, no Linux existe o shred do pacote coreutils. Isto é necessário porque a compactação é justamente essa eliminação dos espaços vazios no arquivo VDI. Diferentemente dos algoritmos de compactação como zip e rar, que agem nos próprios dados.

sexta-feira, 12 de fevereiro de 2010

Apagando seguramente os arquivos no Windows

Quando apagamos um arquivo no sistema Windows, e em outros sistemas também é assim, o arquivo não é removido de verdade mas apenas o sistema avisa que aquele espaço está livre. Para o usuário, aparentemente, o espaço ficou livre pois não aparece mais o que estava lá, entretanto os dados do arquivo ainda permanecem nos setores do disco. Caso o usuário vá gravar algo naquele espaço, neste caso sim o sistema zera o espaço para então armazenar o novo arquivo.

Este modo de operação do sistema operacional pode se transformar em uma brecha na segurança. Com o uso de um software de recuperação de dados é possível reaver o conteúdo apagado e assim a informação estará disponível novamente ao usuário.

O único meio de garantir que um arquivo foi realmente apagado e está sem perigo de ser recuperado é usando uma aplicação de remoção segura. Uma aplicação de remoção segura sobrescreve um arquivo apagado utilizando técnicas que fazem os dados no disco se tornarem irrecuperáveis, mesmo usando tecnologias capazes de analisar impressões na superfície da mídia magnética.

Uma aplicação que faz isso é o Secure Delete (http://www.microsoft.com/technet/sysinternals/Security/SDelete.mspx). O SDelete pode ser utilizado tanto para apagar um arquivo existente quanto zerar os espaços livres que contenham arquivos desalocados. Esta aplicação segue a padronização DoD 5220.22-M do Departamento de Defesa dos Estados Unidos, garantindo a segurança no processo de remoção de um arquivo.

O SDelete é um utilitário de linha de comando e pode receber várias opções como parâmetros. Permite ao usuário apagar um ou mais arquivos e ou diretórios, ou zerar o espaço livre em um disco lógico. O SDelete aceita caracteres curingas como parte do nome de arquivos ou diretórios.

Uso:

sdelete [-p passos] [-s] [-q]
sdelete [-p passos] [-z|-c] [letra da unidade]

-c           Zera o espaço livre.
-p passos    Especifica o número de passos de sobrescrita.
-s           Avança recursivamente em subdiretórios.
-q           Não imprime erros (quieto).
-z           Limpa o espaço livre.

Os parâmetros "-c" e "-z" aparentam ser semelhantes mas, basicamente, o parâmetro "-c" sobrescreve o espaço livre com valores nulos enquanto o parâmetro "-z" sobrescreve com valores aleatórios. Seguindo a padronização do Departamento de Defesa, ambos os parâmetros sobrescrevem o espaço livre por três vezes, se o padrão "-p 1" estiver ativo. O processo de zerar o espaço livre é também útil quando vamos compactar uma unidade virtual de disco, comumente utilizados na virtualização.

sexta-feira, 5 de fevereiro de 2010

Diferenças na configuração de rede das principais distros Linux

Cada distribuição Linux possui suas próprias ferramentas ou utilitários, em modo texto e gráfico, para a configuração de uma interface de rede e o ambiente de rede. Entretanto, aprendendo como fazer isso somente por meio de uma sessão no terminal, fará com que você seja capaz de configurar a rede em quase todas as distribuições Linux.

Atualmente as distribuições conseguem detectar automaticamente o hardware e carregar os módulos necessários para a placa de rede. Assim, vou demonstrar somente a configuração da rede, nas distros Debian, RedHat e Slackware.

Genericamente, para configurar um endereço IP estático em qualquer distribuição Linux na linha de comando usa-se o comando "ifconfig", especificando a interface de rede, o endereço IP, a máscara de rede etc. Também pode ser necessário configurar a rota, com o comando "route", e alterar o arquivo "/etc/resolv.conf" para especificar o servidor de DNS. Algo como nos comandos abaixo:

# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
# route add default gw 192.168.1.2
# vi /etc/resolv.conf

Se na rede houver um servidor DHCP para fornecer um endereço IP dinâmico, na linha de comando usa-se o comando "dhclient". Semelhante ao comando abaixo:

# dhclient eth0

Esta configuração da rede não fica permanente entre as reinicializações da máquina. Para que numa próxima inicialização a rede volte a ser configurada as distribuições possuem alguns scripts para automatizar este processo. Estes scripts executam todos os comandos necessários para ativar as interfaces de rede.

Na distribuição Debian o script que ativa e desativa as interfaces de rede durante a inicialização é o "/etc/init.d/networking". As configurações das interfaces de rede, por sua vez, ficam armazenadas todas no arquivo "/etc/network/interfaces". Seu conteúdo segue basicamente o exemplo apresentado abaixo:

auto eth0
iface eth0 inet static
hwaddress ether 00:01:23:45:67:89
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.2
dns-nameservers 192.168.1.100
dns-search .com

É possível executar manualmente o script "/etc/init.d/networking" para ativar, reativar ou desativar a rede, utilizando como parâmetros os termos start, restart ou stop, respectivamente.

Na distribuição RedHat o script que ativa e desativa as interfaces de rede durante a inicialização é o "/etc/rc.d/init.d/network", controlado pelo comando "chkconfig". As configurações das interfaces de rede, por sua vez, ficam armazenadas nos arquivos "/etc/sysconfig/network-scripts/ifcfg-eth(Nº)". Seu conteúdo segue basicamente o exemplo apresentado abaixo:

DEVICE=eth0
HWADDR=00:01:23:45:67:89
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0

É possível executar manualmente o script "/etc/rc.d/init.d/network" para ativar, reativar ou desativar a rede, utilizando como parâmetros os termos start, restart ou stop, respectivamente.

Na distribuição Slackware o script que ativa e desativa as interfaces de rede durante a inicialização é o "/etc/rc.d/rc.inet1", acionado pelo script "/etc/rc.d/rc.M" caso esteja com permissão de execução. As configurações das interfaces de rede, por sua vez, ficam armazenadas todas no arquivo "/etc/rc.d/rc.inet1.conf". Seu conteúdo segue basicamente o exemplo apresentado abaixo:

IPADDR[0]="192.168.1.1"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""
HWADDR[0]="00:01:23:45:67:89"
GATEWAY="192.168.1.2"

É possível executar manualmente o script "/etc/rc.d/rc.inet1" para ativar, reativar ou desativar a rede, utilizando como parâmetros os termos start, restart ou stop, respectivamente.

Como observa-se, cada uma destas três distribuições Linux possuem características particulares no formato e na organização dos scripts de inicialização da rede e também na sintaxe das configurações. Entretanto, a sintaxe dos comandos "ifconfig", "route" etc. é sempre a mesma em todas.

Estas diferenças prosseguem nas distribuições descendentes destas três. Por exemplo, a Ubuntu é semelhante à Debian, a Fedora é semelhante à RedHat e assim por diante.

Em tempo, eth0 é a primeira interface de rede, eth1 é a segunda e assim por diante. No arquivo de configuração do Slackware elas são distinguidas por [0], [1] etc.