Bichos de X^n cabeças (parte 1/5)

Bicho de 10n cabeças

Nós, humanos, estamos acostumados a tratar com números utilizando a notação decimal, isto é, dez símbolos (0,1,2,3,4,5,6,7,8,9) que combinados representam grandezas numéricas. Neste sistema, a posição do símbolo é importante. Por exemplo, 23 e 32 utilizam os mesmos dois símbolos, mas representam coisas diferentes. Aprendemos a realizar cálculos com números no sistema numérico decimal. Por exemplo, para somar os números 23 e 230 precisamos ajustar a posição dos dois números da direita para a esquerda.

23
+230
253

Não importa a quantidade de termos nesta operação, teremos que ajustar todos os números da direta para a esquerda. Para cada posição do algarismo sabemos que trabalharemos com dez símbolos diferentes específicos. Os dez símbolos representam uma padronização, uma convenção humana. Para os humanos, este sistema de operações poderia ser chamado de um bicho de 10n cabeças, onde 10 é a base, isto é, o número de símbolos distintos para compor qualquer número e o n é o expoente que representa quantas combinações distintas (10n) obteremos com os dez símbolos.

Bicho de 2n cabeças

Entretanto o computador não entende os números como nós humanos. Desta forma, o computador não utiliza internamente o sistema de numeração decimal. Ele utiliza um sistema mais simples, com menos símbolos. Basicamente dois símbolos, 0 e 1. Novamente o 0 e 1 são convenções aceitas. Poderia ser quaisquer dois símbolos, mas parece que 0 e 1 é algo mais fácil de entender. Um sistema de numeração com apenas dois símbolos (21) é denominado sistema de numeração binário. Um número neste sistema seria algo como:

1011011000111

Creio que para a maioria de nós, a base binária foi um horror à primeira vista. Mas eis um segredo, ainda que o sistema decimal pareça bem mais intuitivo e fácil de usar, isto talvez seja uma questão de costume por nascermos em um mundo onde esta base reina na maioria das comunicações humanas. Porém, da mesma forma que no sistema decimal conseguimos realizar operações matemáticas, com os números binários também podemos fazê-las, e isto ocorre de maneira extremamente simples, pois envolve somente ações rudimentares de operar 0’s e 1’s. Abaixo, exemplificamos algumas operações (soma, subtração, multiplicação e divisão) nesta base.

101
+11
1000

 

1011
-100
111

 

1101
x111
1101
1101+
1101++
1011011

 

101 |11
10 11
01

O ramo da matemática que trata esse sistema de numeração com dois símbolos é conhecido como Álgebra Booleana e foi criada pelo matemático, filósofo e lógico do século 19, George Boole. O computador utiliza a Álgebra Booleana para realizar as suas operações. Assim, o computador é um bicho de 2n cabeças.

Podemos exemplificar um computador de 21 cabeças como sendo uma lâmpada ligada a um interruptor. O interruptor (como o próprio nome já diz) interrompe a energia elétrica de chegar até a lâmpada. Assim, quando fechamos o circuito (ou seja, ligamos o interruptor), a energia passa daquele ponto e atinge a lâmpada, fazendo-a acender. De maneira análoga, ao aumentarmos os circuitos conectados com esta lâmpada geramos mais opções a serem satisfeitas. Supondo o caso de dois interruptores ligados em série, para que a lâmpada acenda, tanto o primeiro quanto o segundo devem estar com seus circuitos elétricos fechados, permitindo que a energia passe por eles e chegue até a lâmpada.

No fundo, todos os computadores são gigantescos circuitos de complexos interruptores que “acendem ou apagam luzes”. A ideologia por detrás do computador moderno é atribuída a Alan M. Turing. No caso, Turing propôs um dispositivo que leria uma fita magnética infinita com seus segmentos ocupados (valor verdadeiro ou 1) ou livres (valor falso ou 0) e decidiria a partir destas ações: avançar ou retroceder na fita, apagar ou marcar segmentos desta fita com 0’s ou 1’s. Apesar de simplório, este dispositivo ficou conhecido como Máquina de Turing Universal e há uma máxima na ciência da computação, afirmando que tal dispositivo conceitual é capaz de simular o funcionamento de qualquer computador.

Representação de uma Máquina de Turing Universal.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *