quinta-feira, 18 de junho de 2009

Problema de lógica: Travessia sobre a ponte

Atenção, resposta logo abaixo. Cuidado com os olhos!

Uma família de 5 pessoas precisa atravessar uma ponte. No máximo dois integrantes por vez podem atravessar a ponte. Cada pessoa anda em uma velocidade diferente, demorando 1, 3, 6, 8 e 12 segundos na travessia sobre a ponte. A dupla anda na velocidade do mais lento, isto é, se na travessia for a pessoa que demora 1 segundo com a pessoa que demora 12 segundos, eles levarão 12 segundos para atravessar a ponte. Porém está escuro e eles precisam utilizar um lampião, que dura apenas 30 segundos. Levando em conta somente a soma do tempo gasto nas travessias, como você levaria esta família até o outro lado da ponte em até 30 segundos?






RESPOSTA





                         Tempo gasto
Vai o 3 e o 1 3
Volta o 3 3
Vai o 8 e o 12 12
Volta o 1 1
Vai o 6 e o 1 6
Volta o 1 1
Vai o 3 e o 1 3
Total = 29 segundos

quarta-feira, 17 de junho de 2009

Mostrando cientificamente a existência de Deus

Uma vez muito tempo atrás durante a aula um professor de física contou esta história, que por sua vez, disse que esta história havia sido contada por um professor muito conceituado amigo dele e apesar dele ter dito eu infelizmente não recordo o nome. A história é assim:

Um palito de fósforo não existe sozinho, precisa de algo para acomodá-lo, precisa de uma caixinha. Esta caixinha também não existe sozinha, precisa de algo para guardá-la, um armário por exemplo. Este armário não pode estar só, precisa estar em algum lugar, precisa estar em uma casa. A casa não existe por si só, precisa da terra de um planeta para ser construída em cima. Este planeta também não existe sozinho, precisa de um sistema solar em um universo para existir. E o universo não existe sozinho, precisa de Deus.

sábado, 13 de junho de 2009

Propriedades na álgebra básica

Potenciação:

Dados um número real a e um número natural n maior que 1, chama-se potência enésima de a, e indica-se por a^n, o produto de n fatores iguais a a: a^n = a*a*a*...*a.

Na potência a^n, o número real a chama-se base e o número natural n, expoente.

Propriedades das potências:



Radiciação:

Dados um número real não negativo a e um número natural maior que 1, chama-se raiz enésima de a, e indica-se por n√a, um número real b tal que b^n = a.

Na raiz n√a, o número real a chama-se radicando, o número n, índice da raiz e o sinal √, radical.

Propriedades dos radicais:



Produtos notáveis e fatoração:

Alguns dos produtos notáveis são o quadrado da soma, o quadrado da diferença, o cubo da soma e o cubo da diferença. Aplicando a propriedade distributiva da multiplicação podemos escrevê-los na forma de uma expressão algébrica formada por parcelas. E o produto da soma de dois termos pela diferença dos mesmos dois termos é igual ao quadrado do primeiro termo menos o quadrado do segundo termo.

Na fatoração, quando escrevemos a*(x+y) no lugar de a*x+a*y, estamos fatorando a expressão a*x+a*y, ou seja, estamos transformando-a na forma de produto de dois fatores, que neste caso são a e (x+y). Quando uma expressão algébrica é formada por parcelas, sendo que um mesmo fator aparece em todas elas, colocamos este fator, chamado fator comum, em evidência. Quando não existe um fator comum para todas as parcelas mas partes da expressão possuem fator comum, separa-se em grupos de parcelas, chamado de agrupamento, com fator comum e aplica-se a fatoração grupo a grupo.

Algumas identidades são usadas na fatoração da diferença de quadrados, diferença e soma de cubos e no trinômio quadrado perfeito.

Identidades dos produtos notáveis e da fatoração:



Logaritmo:

Sendo a um número real positivo e diferente de 1 e b um número real positivo, chama-se logaritmo de b na base a o número ao qual devemos elevar a base a para se obter b. Chamando-se de x o logaritmo de b na base a.

Os logaritmos de base 10 chamam-se logaritmos decimais e neste caso costuma-se omitir a base escrevendo-se apenas log b. Os logaritmos que tem o número irracional e (2,718) como base chama-se logaritmos neperianos ou naturais e são indicados por ln b.

Propriedades dos logaritmos:


quinta-feira, 11 de junho de 2009

O sistema de numeração romano

O sistema de numeração romano no mundo moderno baseia-se em sete algarismos: I, V, X, L, C, D e M, que tem como valores respectivamente 1, 5, 10, 50, 100, 500 e 1000 unidades.

Para representar os valores intermediários usa-se a combinação deles. Algarismos repetidos somam seus valores, com até no máximo três algarismos, por exemplo III = 3, XX = 20. Com um algarismo menor antes de um maior faz a subtração, chamado de princípio subtrativo, por exemplo IV = 4, XC = 90. E com um algarismo menor depois de um maior somam-se seus valores, por exemplo XV = 15, XVI = 16, LX = 60.

No princípio subtrativo existem algumas regras. Os únicos algarismos válidos são os I, X e C. Os algarismos "cinco" V, L e D não podem ser usados, e M também não pode ser usado pois é o maior. Um número menor não pode ser menor do que a décima parte do maior, então I só pode ser usado à esquerda de V ou X, o X só pode ser usado à esquerda de L ou C, e C só pode ser usado à esquerda de D ou M. Somente um único número menor pode ser usado à esquerda de um maior e também somente um único número maior será subtraído. Segue alguns exemplos: CMXLIX = 949, CDXLIV = 444, XCIX = 99, XIX = 19.

Observa-se que o princípio subtrativo serve para obter os algarismos 4 e 9 e a adição serve para obter os algarismos 2, 3, 6, 7 e 8 na formação dos números.

Para representar números maiores que MMM (três mil) usa-se um traço horizontal sobre o número, que significa multiplicá-lo por mil, por exemplo:
_          _            ________
V = 5.000, X = 10.000 e MMMDCCCLMMCDXXIX = 3.852.429

Seguindo esta mesma regra, com dois traços sobre o número faz a multiplicação por um milhão.

O maior número que pode ser representado sem o uso do traço multiplicador é o número MMMCMXCIX = 3999. Segue alguns exemplos:



I = 1
II = 2
III = 3
IV = 4
V = 5
VI = 6
VII = 7
VIII = 8
IX = 9
X = 10

XI = 11
XII = 12
XIII = 13
XIV = 14
XV = 15
XVI = 16
XVII = 17
XVIII = 18
XIX = 19

XX = 20
XXX = 30
XL = 40
L = 50
LX = 60
LXX = 70
LXXX = 80
XC = 90

C = 100
CC = 200
CCC = 300
CD = 400
D = 500
DC = 600
DCC = 700
DCCC = 800
CM = 900

M = 1000
MM = 2000
MMM = 3000

MCDLXXVI = 1476
MCMXCIX = 1999
MMIX = 2009

Este sistema moderno de numeração romano é uma evolução do sistema utilizado nos primórdios da civilização Romana. Por exemplo antigamente o número 4 podia ser representado por IIII, 18 podia ser representado por IIXX e também eram usados outros algarismos para quinhentos e mil.

sábado, 6 de junho de 2009

Gravando um DVD de dados em terminal de texto no Linux

Os aplicativos em modo texto para gravação de CD e DVD no Linux são uma forma muito eficiente de ter seus dados copiados para estes tipos de mídia. São ferramentas que proporcionam um controle total no processo e permitem a escolha de qualquer parâmetro de gravação.

Antes de qualquer gravação é necessária a organização dos arquivos que serão copiados. Uma maneira segura é juntá-los dentro de um diretório, assim tudo o que estiver lá dentro não será esquecido. Uma solução ainda mais eficiente é a geração de uma imagem de DVD, na qual pode-se testar se tudo está como deseja antes de queimar uma mídia.

Para a geração de uma imagem existe uma ferramenta chamada "genisoimage", do pacote de mesmo nome, capaz de criar sistemas de arquivos híbridos com ISO9660/Joliet/HFS e opcionalmente com atributo Rock Ridge. Esta ferramenta possui uma vasta variedade de parâmetros, bem documentada em sua página manual, e permite obter qualquer sistema que desejar. Segue um exemplo de uma linha de comando com os parâmetros comentados:

genisoimage -r -J -joliet-long -iso-level 4 -l -V nome -o imagem.iso diretório/

-r: Adiciona a extensão Rock Ridge para o sistema de arquivos e setando os arquivos e diretórios com permissões e modos em valores mais proveitosos, como dono e grupo setados em zero, permissão de escrita removida etc. Reconhecido no Linux apenas.

-J: Adiciona a extensão Joliet para o sistema de arquivos, permitindo nomes com até 64 caracteres.

-joliet-long: Permite nomes de arquivos Joliet com até 103 caracteres.

-iso-level: Especifica o nível do ISO9660, de 1 a 4, que vai do modo mais compatível, com nomes de no máximo 8.3 caracteres, ao mais relaxado, o nível 4, usando o padrão ISO-9660:1999, onde os nomes dos arquivos podem ter até 207 caracteres e não há mais o limite de 8 níveis para os subdiretórios.

-l: Permite 31 caracteres para o nome dos arquivos, relaxando as restrições do padrão ISO9660.

-V: Especifica um nome para o volume, de até 32 caracteres.

-o: Especifica o arquivo de saída para a imagem gerada.

Neste exemplo será gerado o arquivo "imagem.iso" contendo tudo que estiver dentro do "diretório/", excluindo o próprio, ou seja, na raiz do sistema de arquivo gerado ficarão os arquivos e subdiretórios existentes dentro do diretório especificado.

Uma outra forma de gerar uma imagem é em um processo de cópia de um DVD, onde utiliza-se a ferramenta "dd", do pacote "coreutils", para copiar o conteúdo da mídia e gerar a imagem. Segue um exemplo:

dd if=/dev/dvd of=imagem.iso

Este comando simplesmente faz uma cópia idêntica do sistema de arquivo do DVD para a imagem especificada.

Antes de gravar a imagem em uma mídia vazia convém testar se os arquivos foram copiados corretamente para a imagem, utilizando o comando "mount" como no exemplo abaixo:

mount -o loop -t iso9660 imagem.iso /mnt/iso/

Todo o sistema de arquivo contido na imagem será aberto em modo somente leitura no diretório "/mnt/iso/". Se os arquivos não estiverem corrompidos, tudo estará certo. O comando "umount /mnt/iso/" fechará esta montagem.

Arquivo imagem correto, tudo pronto para gravar na mídia. Um programa muito bom para isso é o "growisofs" do pacote "dvd+rw-tools". Este programa suporta todos os tipos de mídias DVD inclusive mídias Blu-ray.

Para que este comando funcione é necessário saber o nome do dispositivo do gravador, usando o comando abaixo:

wodim --devices

Como retorno aparece uma informação semelhante a que está abaixo:

wodim: Overview of accessible drives (2 found) :
----------------------------------------------------------------
0 dev='/dev/scd0' rwrw-- : 'HL-DT-ST' 'DVD-RAM GSA-H50N'
1 dev='/dev/scd1' rwrw-- : 'HL-DT-ST' 'DVD-ROM GDR8163B'
----------------------------------------------------------------

Neste exemplo percebe-se que o gravador é o dispositivo "/dev/scd0". Então um exemplo de linha de comando para o growisofs fica assim:

growisofs -dvd-compat -speed=4 -Z /dev/scd0=imagem.iso

-dvd-compat: Proporciona o máximo de compatibilidade com o resultado da mídia DVD, necessário para filmes e em DVD de dados faz com que a sessão fique fechada.

-speed: Determina a velocidade de gravação, em x.

-Z: Especifica o dispositivo do gravador, que por sua vez recebe o nome do arquivo da imagem.

Como podem perceber, são comandos simples que fazem muito. Consultem as páginas manuais destas ferramentas e vejam o quanto elas são capazes de fazer.

quarta-feira, 3 de junho de 2009

Conversão entre bases numéricas

Todo número inteiro positivo de qualquer base pode ser convertido para qualquer outra base numérica através da aplicação de um teorema numérico proveniente da teoria dos números. Sabemos que, pelo seguinte teorema, seja B um inteiro positivo maior do que 1, então todo inteiro positivo N pode ser representado de maneira única da seguinte forma:

N = Dn x B^n-1 + Dn-1 x B^n-2 + ... + D2 x B^1 + D1 x B^0

Sendo n a quantidade de algarismos, D cada algarismo do número e B a base do número. Onde n>=1, 0<=D<B, Dn o algarismo mais significativo e D1 o algarismo menos significativo.

Por exemplo o número em base decimal 53742, que possui cinco algarismos, pode ser escrito na forma 5 x 10^4 + 3 x 10^3 + 7 x 10^2 + 4 x 10^1 + 2 x 10^0.

Para expressarmos 53742, por exemplo, na base 7 vamos proceder de forma a obter informações semelhantes a estas, onde 7 irá representar o papel de 10 no que acabamos de descrever. Primeiro dividimos 53742 por 7 obtendo quociente 7677 e resto 3. Em seguida dividimos este quociente 7677 por 7 obtendo um segundo quociente igual a 1096 e resto 5. Seguindo repetidamente este procedimento até chegarmos a um quociente nulo, obtendo a seguinte seqüência de igualdades:

53742 = 7 x 7677 + 3
7677 = 7 x 1096 + 5
1096 = 7 x 156 + 4
156 = 7 x 22 + 2
22 = 7 x 3 + 1
3 = 7 x 0 + 3

Como a seqüência dos quocientes é decrescente e formada somente por inteiros positivos ela deve atingir o valor zero. Na primeira destas equações substituímos o valor de 7677 dado na segunda. Na expressão resultante substituímos o valor de 1096 dado na terceira, nesta o valor de 156 dado na quarta e assim sucessivamente obtendo a seguinte expressão:

53742 = 7 x (7 x 1096 + 5) + 3
= 7^2 x 1096 + 5 x 7 + 3
= 7^2 x (7 x 156 + 4) + 5 x 7 + 3
= 7^3 x 156 + 4 x 7^2 + 5 x 7 + 3
= 7^3 x (7 x 22 + 2) + 4 x 7^2 + 5 x 7 + 3
= 7^4 x 22 + 2 x 7^3 + 4 x 7^2 + 5 x 7 + 3
= 7^4 x (7 x 3 + 1) + 2 x 7^3 + 4 x 7^2 + 5 x 7 + 3
= 3 x 7^5 + 1 x 7^4 + 2 x 7^3 + 4 x 7^2 + 5 x 7 + 3

Esta expressão é a representação do número decimal 53742 na base 7 e é denotado por 312453_7, ou seja, 53742_10 = 312453_7.

Observa-se que por toda a seqüência de divisões pela base, os restos obtidos formam justamente os algarismos do número resultante na conversão, obtendo primeiro o algarismo menos significativo até, na última divisão, o mais significativo.

Para denotarmos números em base maior que 10 temos que utilizar algarismos extras pois os algarismos numéricos são somente 10, de 0 a 9. Deste modo é padrão utilizar as letras do alfabeto para representar os números de 10 em diante, sendo A=10, B=11, C=12 etc.

Para expressarmos o número decimal 76269, por exemplo na base 13, aplicamos a seqüência de divisões por 13, obtendo a seguinte seqüência de igualdades:

76269 = 13 x 5866 + 11
5866 = 13 x 451 + 3
451 = 13 x 34 + 9
34 = 13 x 2 + 8
2 = 13 x 0 + 2

Portando:

76269_10 = 2 x 13^4 + 8 x 13^3 + 9 x 13^2 + 3 x 13^1 + 11 x 13^0 = 2893B_13

Até agora vimos exemplos de conversão em somente um sentido, de base decimal para outra base numérica. Para o sentido inverso, de qualquer base para a base decimal, basta aplicarmos a fórmula do teorema sem necessitar da seqüência de divisões, efetuando apenas o somatório dos algarismos multiplicados pela base elevada a potência entre n-1 à 0. Por exemplo:

E5CB_16 = 14 x 16^3 + 5 x 16^2 + 12 x 16^1 + 11 x 16^0 = 58827_10

Lembrando que E=14, C=12 e B=11.

E para conversões entre bases que não sejam uma delas a base decimal, o processo prático utilizado é converter de uma base dada para a base 10 e depois da base 10 para a outra base pedida.

É também possível a conversão de números não inteiros, aplicando o teorema com potências negativas. Por exemplo 0,572 = 5 x 10^-1 + 7 x 10^-2 + 2 x 10^-3. Para a conversão da parte fracionária realiza-se uma seqüência de multiplicações pela base ao invés de divisões sucessivas, mas esta explicação ficará para um próximo artigo.

Observação: Pelo motivo das limitações para a exibição deste texto no blog, foi adotada a notação n_b, sendo n o número e b a sua base.