Você está na página 1de 18

 

MATEMÁTICA COMPUTACIONAL
AULA 2

Prof. Luiz Gonzaga de Paulo


CONVERSA INICIAL

Como já é de nosso conhecimento, a matemática é essencial à computação. Podemos até afirmar que computação e

matemática são uma coisa só. E é por isso que nessa aula abordaremos questões que certamente despertam seu
interesse, tais como a possibilidade de o computador cometer erros ou apresentar cálculos com resultados incorretos. Ou
a possibilidade de validar os resultados obtidos pelos programas de computador, e também a capacidade de o
computador manter em ordem e localizar as informações necessárias às nossas atividades. Vamos lá?

Para responder a essas questões, trataremos de temas que são elementares à aplicação da matemática na
computação, como os erros, a teoria dos conjuntos, os vetores e as matrizes, suas características principais e as operações
que podemos realizar com eles. Também veremos elementos e estruturas matemáticas de grande importância para a

computação, no que se refere ao tratamento de dados e ao estabelecimento de processos e fluxo de atividades para a
solução de problemas.

Saiba mais

Para ampliar seus conhecimentos, leia:

MACEDO, L. R. D., CASTANHEIRA, N. P., ROCHA, A. Tópicos de matemática aplicada. Curitiba: InterSaberes,

2013. cap. 2.

TANEMBAUM, A. S. Organização estruturada de computadores. São Paulo: Pearson Prentice Hal, 2014. cap. 3

TEMA 1 – ESTRUTURAS DE DADOS

Nesse tema, vamos apresentar elementos matemáticos que têm vasto uso na computação, em especial na construção

de estruturas de dados e em armazenamento, busca e recuperação de informações.

1.1 VETORES

Os elementos que denominamos vetores são listas de valores – conjuntos, ou arranjos – cujos elementos apresentam
caraterísticas em comum. Os vetores têm seus elementos posicionados em sequência, e esses elementos são acessados
usando-se uma chave, o índice do vetor. Os vetores integram os elementos de dados que são fundamentais para a
resolução de problemas por meio da organização dos dados em programas de computador. Vetores também

representam segmentos de reta na geometria – uma sequência de pontos que forma a reta, sendo dessa forma um
elemento gráfico.

Em ambientes de computação, os vetores fazem parte das estruturas de dados homogêneas, por conter somente
dados de um único tipo. Uma sequência de caracteres (cadeia ou string) é exemplo típico de um vetor que, na linguagem

de programação C, por exemplo, é um tipo de dado – uma lista de caracteres. Nesses ambientes, os vetores são
classificados como estruturas de dados lineares e estáticas. São compostos por um determinado número de elementos de
um mesmo tipo ou com as mesmas características, sendo similares a outras estruturas de dados, como listas, filas, pilhas
ou árvores.

Nas linguagens de programação em geral, os vetores são tratados como variáveis múltiplas de uma única dimensão,
as quais possibilitam acesso aos seus elementos de modo muito fácil e rápido. Entretanto, a inclusão ou exclusão de
elementos intermediários é uma operação mais complexa, devendo ser bastante criteriosa para reduzir as operações de
processamento e evitar a perda de dados. A Figura 1 a seguir apresenta dois vetores, um denominado Nome, com

conteúdo alfanumérico, e outro denominado Idade, contendo apenas valores numéricos.

Figura 1 – Vetores

Em vetores como os da Figura 1, os elementos podem ser tratados individualmente, sendo referenciados pelo índice,
ou seja, pela posição que ocupam no vetor:

Nome [1] = João;              Idade [1] = 35;

Nome [2] = Maria;             Idade [2] = 46;

Nome [5] = Antônio;         Idade [5] = 81;

Vetores são bastante utilizados em programas de computadores nos quais operações de ordenação e busca de
informação são recorrentes.

1.2 MATRIZES

Em computação as matrizes são um tipo de arranjo de vetores com duas ou mais dimensões, cujos dados contêm
características comuns. Esses dados são organizados sequencialmente e, tal como os vetores, acessados por meio da
chave – ou índice – da matriz. As matrizes também fazem parte das estruturas de dados essenciais para o tratamento de
problemas matemáticos em ambientes computacionais, especialmente os de computação gráfica.

As matrizes também são um tipo de estrutura de dados homogêneas, ou, como já dissemos, um tipo de arranjo de
vetores, em que cada vetor corresponde à uma dimensão da matriz. A Figura 2 mostra uma matriz bidimensional,
enquanto a Figura 3 apresenta uma matriz de três dimensões.

Figura 2 – Uma matriz de duas dimensões

Os elementos dessa matriz podem ser referenciados da seguinte maneira:

Pessoa [1,1] = João               Pessoa [1,2 ] = 35;


Pessoa [2,1] = Maria              Pessoa [2,2] = 46       Pessoa [2,3] = Professora;
Pessoa [3,3] = Arquiteto;
Pessoa [5,1] = Antônio          Pessoa [5,2] = 81;

Figura 3 – Matriz de três dimensões

Tal qual os vetores, as matrizes compõem as chamadas estruturas de dados lineares e estáticas, podendo conter um
número finito de elementos de determinado tipo, sejam letras, números ou sinais. Na maioria das linguagens de
programação, as matrizes são consideradas variáveis de múltiplas dimensões, e o acesso aos elementos é feito por meio
de índices – as chaves de acesso –, havendo um índice para cada dimensão da matriz.

As aplicações de planilhas de dados, como o Microsoft Excel, por exemplo, são a representação mais típica das
matrizes. Também os elementos de imagens, tais como os desenhos, as fotografias e os filmes, são compostos por
matrizes multidimensionais. A tela do computador que você está usando neste momento é uma matriz visível, na qual
cada minúsculo ponto (ou pixel) representa um elemento com várias dimensões, tais como cor, posição e intensidade
luminosa (brilho/contraste).

1.3 CONJUNTOS

Os conjuntos são agrupamentos ou coleções de objetos – denominados elementos ou membros do conjunto –, cujas

características são comuns entre si. Os conjuntos são geralmente representados por uma letra maiúscula, e os seus
elementos são expressos entre chaves, tais como:

As vogais V = {A, E, I, O, U, a, e, i, o, u};


Os estados da região sudeste S = {SP, RJ, MG, ES};

Os dígitos do sistema binário de numeração D = {0, 1}.

Podemos também representar os conjuntos em sua forma gráfica com o diagrama de Venn, como mostrado na
Figura 4. O diagrama de Venn contempla o conjunto dos números (e seus subconjuntos): Reais R, Irracionais I, Racionais

Q, Inteiros Z, Naturais N. No caderno de exercícios da disciplina, são apresentadas as diversas operações com os
conjuntos, além de problemas e soluções com o uso desses elementos.

Figura 4 – Diagrama de Venn

TEMA 2 – ARITMÉTICA DE PONTO FLUTUANTE

Como já vimos, os computadores são máquinas que trabalham com números. Nesse aspecto, os computadores
superam a capacidade humana, tanto na quantidade quanto na velocidade. Isto porque podem manipular valores em

grande escala, e o fazem com altíssimas velocidades. Entretanto, há um fator limitador: o tamanho, isto é, a quantidade de

dígitos necessária para a representação desses valores. A maioria dos sistemas computacionais, linguagens de
programação e softwares, delimitam a quantidade de dígitos que podem ser empregados para a representação desses
valores.

Tal como o número de dígitos de um display de calculadora, os sistemas computacionais empregam formatos

definidos, com um número específico de dígitos para a representação dos números reais. Isso se deve ao fato de que a
quantidade de bits utilizada pelo hardware é fixa, e deve haver uma compatibilização entre a quantidade e a

representação numérica, de modo a evitar problemas com os cálculos, ou o aumento expressivo no tempo necessário
para a realização dos cálculos. Para essa compatibilização, utilizamos o Sistema de Ponto Flutuante (ou de virgula

flutuante). Leia o capítulo 10 (Stallings, 2017), e use o caderno de exercícios para auxiliar seu aprendizado.

2.1 SISTEMA DE PONTO FLUTUANTE

Os computadores representam os números reais, com a Aritmética de Ponto Flutuante, formulada por F[β, t, -p, p],

representando o sistema F do sistema de numeração de base β com a quantidade t de dígitos na mantissa – ou dígitos
significativos, e limites de expoente de -p até p,. Os números desse sistema são então expressos no seguinte formato:

± (0, )

No qual:

β é a base do sistema de numeração com o qual o computador opera (geralmente 2, ou binária, para a computação
digital);

d é um dos dígitos da mantissa, cuja quantidade máxima é definida por t;


e representa o expoente, cujo intervalo é definido por p, variando de -p até p.

Por exemplo: Dado o sistema de representação F[10, 3, -5, 5], que significa β = 10, t = 3 e e  [-5,5], temos então:

O menor número, em valores absolutos (m), é 0,001 x 10-5, ou seja, 10-8;

O maior número, em valores absolutos (M), é 0,999 x 105, ou seja, 99900.

Se usarmos esse sistema para representar um dado número, como por exemplo N = 227,68 ou seja, N = 0,22768 x

103, será representado como 0,227 x 103 – caso a opção seja o truncamento ou corte – ou 0,228 x 103, caso a opção

seja o arredondamento.

2.2 REPRESENTAÇÃO DE NÚMEROS REAIS

Um número real é representado, como vimos, em um determinado sistema de numeração, com o formato específico
desse sistema. A norma técnica IEEE 754 define os padrões que regem essa representação, o armazenamento e a

realização de operações. O intuito é manter a compatibilidade entre os diversos ambientes computacionais, garantindo a

portabilidade dos valores e evitando que diferentes formatos possam resultar em erros ou mesmo na impossibilidade da
realização dos cálculos. Isto significa que temos dois conjuntos distintos de valores, denominados números de precisão

simples, com um tamanho de 32 bits, e precisão dupla, com um tamanho de 64 bits.

Tabela 1 – A precisão numérica definida pela norma IEEE 754

A representação dos números reais em precisão simples fica como mostrado na figura 5, o que significa que

podemos representar números no intervalo de 1,18 x 10-38 até 3,4 x 1038 aproximadamente, usando para isso sete
casas decimais.

Figura 5 – Representação dos números de precisão simples (32 bits)

Já a representação dos números reais em precisão dupla fica como mostra a Figura 6. Isso significa que podemos

representar números no intervalo de 2,23 x 10-308 até 1,8 x 10308 aproximadamente, com dezesseis casas decimais.

Figura 6 – Representação dos números de precisão dupla (64 bits)


2.3 ADIÇÃO E SUBTRAÇÃO

A adição e a subtração de números expressos em ponto flutuante repetem o processo para inteiros com expoente,

porém é preciso atenção, como com qualquer operação cujos operadores utilizem expoentes. O processo pode ser
descrito em três etapas:

1. Comparamos a magnitude dos expoentes dos operadores e nivelamos esses expoentes, ajustando o do número

de menor valor (alinhamento);


2. Realizamos a operação (adição ou subtração);

3. Ajustamos a mantissa e o expoente do número resultante (normalização).

Para fixar esses passos, queremos realizar a soma de dois números binários expressos em aritmética de ponto
flutuante:

1,1100 x 24 + 1,1000 x 22

Seguindo os passos descritos, teremos:

1. Alinhamos os expoentes e a mantissa, ajustando os do menor valor:

1,1000 x 22  à 0,0110 x 24

2. Realizamos a soma dos dois números:

1,1100 x 24 + 0,0110 x 24 = 10,0010 x 24

3. Normalizamos o resultado, ajustando a mantissa e o expoente:

10,0010 x 24 à 0,1000 x 26, assumindo que temos quatro casas decimais.

2.4 MULTIPLICAÇÃO

O processo de multiplicação de números expressos em ponto flutuante é o mesmo utilizado para a multiplicação de

números com expoentes: multiplicam-se as bases e somam-se os expoentes. Nesse caso, a base é a mantissa. Então, se

temos dois valores binários a e b, sendo a = ma x 2x e b= mb x 2y, teremos:


a x b = (ma x mb) x 2x+y. Vejamos a seguinte operação como exemplo:

1,000 x 2-2 x (-1,010 x 2-1)

1. Somamos os expoentes:

(-2) + (-1) = -3

2. Multiplicamos as mantissas:

1,000 x (-1,010) = -1,010000

3. Normalizamos o resultado, ajustando a mantissa e o expoente:

-1,01000 x 2-3 à -1,010 x 2-3, assumindo que temos três casas decimais.

2.5 DIVISÃO

Assim como na multiplicação, o processo de divisão de números expressos em ponto flutuante é o mesmo utilizado
para os demais números com expoentes: dividem-se as bases e subtraem-se os expoentes, lembrado que a base é a

mantissa. Então, se tivermos que dividir dois valores binários a e b, sendo a = ma x 2x e b= mb x 2y, teremos:

a ¸ b = (ma ¸ mb) x 2x-y.

Vejamos a seguinte operação como exemplo:

1,0000 x 2-2 ¸ (-1,0100 x 2-1)

1. Subtraímos os expoentes:

(-2) - (-1) = -2 + 1 = -1

2. Dividimos as mantissas:

1,0000 ¸ (--1,0100) = -0,11001100110011... (dízima)

3. Normalizamos o resultado, ajustando a mantissa e o expoente:

-0,110011 x 2-1, assumindo seis casas decimais, pois o resultado exigiria uma precisão muito maior.

TEMA 3 – ERROS

Como já vimos, operações aritméticas de ponto flutuante ou as de conversão entre sistemas podem resultar em

erros. Estes erros são classificados em dois tipos básicos. Temos erros de precisão, decorrentes da limitação de dígitos
usados para representar os valores – o número de dígitos é geralmente pré-definido em decorrência da utilização do
sistema binário e da constituição do hardware. Este tipo de erro é comum em programação, no caso das variáveis

utilizadas nos programas de computador. Por outro lado, a aproximação, o arredondamento ou a ocorrência de dízimas
periódicas geram os erros de exatidão, devido à interrupção abrupta ou forçada da representação.

Existem grandes diferenças entre esses dois tipos de erros, e as implicações de ambos geram consequências distintas,

em se tratando do ambiente computacional, mesmo que haja semelhanças. Por exemplo, os erros de truncamento,
decorrentes do limite de precisão, prejudicam diretamente os números irracionais, tais como o número π (Pi), que

expressamos normalmente com duas casas decimais, como 3,14. O valor 3,1415926 de Pi é usado na maioria dos cálculos,

e é o padrão das calculadoras em geral, pois isso é satisfatório para a maioria dos cálculos. Já cálculos mais complexos,
que requerem maior precisão, podem requerer a representação do Pi com até cinquenta e duas casas decimais:

Precisões maiores são obtidas com algoritmos computacionais específicos, e já se tem realizado o cálculo de Pi com

dezenas de trilhões de dígitos. Esses erros podem ser expressos de duas maneiras: na forma absoluta ou na forma
relativa (em percentual), como veremos a seguir.

3.1 ERRO ABSOLUTO

O erro absoluto é a diferença entre o valor real e a forma na qual foi expresso. Calculamos o erro absoluto pela
seguinte fórmula:

 = x -

Tomando o exemplo dado do valor de Pi, sendo x o valor de Pì com oito casas decimais e  o valor de Pi com dois
decimais, então temos:

3,1415926 - 3.14 = 0,0015926

É claro que isso é apenas um exemplo, pois o valor real de Pi é algo ainda desconhecido.

3.2 ERRO RELATIVO

O erro relativo é a razão entre o erro absoluto EA e o valor real x, isto é:

 =

Ou também:

 =
Com os valores do exemplo dado:

 =  →  = 5 x 10-4 ou 0,05%

3.3 EXCEÇÕES

Nos ambientes computacionais, as operações com ponto flutuante podem resultar em interrupção do
processamento, o que não é algo esperado. Essas operações são decorrentes basicamente de cinco tipos de operações –
ou exceções:

1. O overflow é um resultado apresentado quando é gerado um resultado infinito ou muito além da capacidade de
representação do sistema.

2. O underflow ocorre quando é obtido um resultado zero após um arredondamento de um valor diferente de zero,
ou seja, um valor muito menor do que a capacidade de representação do sistema.
3. A divisão por zero geralmente é o resultado de um cálculo com um underflow ou valor pouco significativo para o

sistema. Uma divisão por zero não possibilita qualquer solução matemática.
4. Um resultado inexato, apesar de ser algo que pode acontecer com relativa frequência, pode resultar tanto de um
cálculo que gere overflow quanto de arredondamentos. Geralmente, essas ocorrências não geram uma interrupção
do processo, porém podem, caso façam parte de um processo recorrente ou recursivo, se transformar em algo mais

crítico, e por isso pode ser tratado como uma exceção.


5. Um número inválido é o resultado de uma operação que não pode ser considerado um número, conhecido pela
sigla em inglês NaN – Not a Number, como por exemplo a raiz quadrada de um número negativo, uma divisão de

zero por zero ou de infinito por infinito.

3.4 CANCELAMENTO CATASTRÓFICO

Figura 7 – Cancelamento catastrófico


O cancelamento catastrófico é o nome que se dá ao efeito que ocorre quando um cálculo atinge o épsilon ε do
sistema computacional. O épsilon do sistema é o menor número que, somado a 1, resulta em um número diferente de 1;

ou seja, não é arredondado. O épsilon representa a precisão aritmética relativa da máquina, e é consequência da precisão
finita da aritmética de ponto flutuante.

TEMA 4 – ELEMENTOS MATEMÁTICOS COMPUTACIONAIS

Alguns elementos matemáticos são de grande importância para determinadas tarefas, seja a resolução de problemas
ou a implementação de funcionalidades específicas por meio de programas de computador. Os grafos e as árvores são

dois desses elementos, dos quais trataremos neste tema.

4.1 GRAFOS

A estrutura gráfica utilizada em matemática para apresentar as relações entre os elementos ou objetos de um

conjunto é denominada grafo. Grafos são expressos na forma de equação como G (V,A), na qual são representados seus
dois elementos: os vértices e as arestas. Os elementos do conjunto – ou componentes, objetos – são representados por
círculos ou pontos e denominados vértices. Já as relações, ligações, dependências ou “caminhos” entre os vértices são
representados por segmentos de reta ou linhas, as arestas, como nos mostra a Figura 8.

Figura 8 – A representação de um Grafo

Os grafos que têm suas arestas direcionadas são denominados grafos orientados (ou ainda grafos dirigidos,
direcionados ou dígrafos). Um vértice pode ser ligado a ele próprio, formando um laço ou loop. As arestas podem
conter rótulos de identificação, de peso ou valor numérico. Um grafo G é um grafo dirigido G = (V, A), tal que V = {A, B,
C, D, E, F, G} e A = {(A,B), (B,C), (B,D), (B,E), (C,E), (D,E), (E,F), (G,D)}, como mostrado na Figura 9. Neste exemplo, é

possível identificar rotas ou fluxos entre os vértices, traçando caminhos entre eles.

Figura 9 – Um grafo dirigido


Em um outro caso, temos um grafo não dirigido G = (V, A), representando as fronteiras entre alguns países da
América do Sul, em que V = {Argentina, Bolívia, Brasil, Chile, Paraguai, Uruguai} e A = {(Argentina, Bolívia),
(Argentina, Brasil), (Argentina, Chile), (Argentina, Paraguai), (Argentina, Uruguai), (Bolívia, Brasil), (Bolívia, Chile),

(Bolívia, Paraguai), (Brasil, Paraguai), (Brasil, Uruguai)}, o que nos mostra a Figura 10.

E nesse outro caso, mostrado na Figura 11, um grafo dirigido rotulado G = (V, N, A), tal que V = {a, b, c, d, e, f} e A
= {(a,9,b), (a,4,b), (b,3,b), (b,6,e), (d,7,a), (d,7,e), (e,8,d), (e,5,f)}. Note que foram acrescentados valores que
identificam as arestas, e que há um vértice c para o qual não há nenhuma ligação, além de um loop no vértice b.

Figura 101 – Um grafo não dirigido

A representação de um grafo finito com n vértices pode ser feita por uma matriz de adjacência. Essa matriz tem as
dimensões definidas pelo número de vértices (n-por-n), e o valor na linha i e coluna j fornece o número de arestas que
conectam o i-ésimo ao j-ésimo vértices.

Figura 11 – Um Grafo dirigido rotulado


A Figura 12 abaixo apresenta uma matriz de adjacência e o respectivo grafo.

Figura 12 – Uma matriz de adjacência com o respectivo grafo

Importante:

Em um dígrafo, contemplamos os graus de saída (o número de arestas saindo de um vértice) e de entrada (o


número de arestas entrando em um vértice);

O grau de um vértice de um dígrafo é igual à soma dos graus de saída e de entrada.

4.2 ÁRVORES

Uma árvore é um grafo conexo, aquele no qual sempre existe uma aresta entre dois quaisquer de seus vértices, e
que é também acíclico, isto é, não existem ciclos ou loops. As árvores correspondem a uma das mais importantes
estruturas de dados não lineares da computação.

Com relação à definição de árvores, podemos afirmar que nem todo grafo é uma árvore, mas que toda árvore é um

grafo. Além disso, é um grafo bipartido, isto é, apresenta pelo menos dois níveis. Toda árvore também é um grafo
planar, que é representado em um plano, em apenas duas dimensões. Por outro lado, todo grafo conexo inclui ao
menos uma árvore de extensão associada a si, composta de todos os seus vértices e de algumas de suas arestas.

Para considerarmos um grafo G com n vértices como uma árvore, devemos verificar se esse grafo:

É conexo, e há um único caminho entre dois vértices quaisquer; deixará de ser conexo se qualquer aresta for
removida;

É acíclico, tem n – 1 arestas, e ao se incluir uma nova aresta fecha-se um novo ciclo.

Se um determinado vértice da árvore é escolhido como especial, a árvore é denominada enraizada, e o vértice

escolhido é denominado raiz. Uma árvore livre é aquela que não tem raiz. O número máximo de arestas – ou ramos – em
um vértice – ou elemento – é chamado de ordem ou grau, e a máxima sequência de vértices de grau um ou maior define
a quantidade de níveis de uma árvore.

4.3 ÁRVORE BINÁRIA


A árvore binária é o tipo de árvore que a computação mais utiliza, e é definida como um grafo acíclico, conexo,

dirigido. Cada nó tem grau (ou ordem) menos ou igual a. Cada ramo da árvore é um vértice dirigido, sem peso, que chega
ao próximo (sucessor ou filho) a partir do seu anterior (antecessor ou pai), formando uma hierarquia, e fazendo com que
só exista um único caminho entre dois nós distintos.

Figura 13 – Uma árvore binária

A implementação de uma árvore binária na programação de computadores geralmente usa uma função recursiva,

tanto para a construção da árvore quanto para o acesso e a modificação dos elementos. A recursão é utilizada
frequentemente nas operações com árvores binárias; a construção e ordenação de listas para a busca binária é uma das
principais aplicações das árvores binárias.

Figura 14 – Árvore binária com acesso EDR

Os percursos possíveis em uma árvore binária são a leitura em pré-ordem, em ordem e em pós-ordem. Em “pré-
Ordem” (ou RED = raiz, esquerda, direita) é acessado um nó raiz, depois seu sucessor da esquerda e em seguida o da
direita. No acesso “em ordem” (In-Order ou ERD = esquerda, raiz, direita) é acessada uma folhada esquerda, sua raiz (ou

predecessor), e depois o nó da direita. Já no acesso em “pós-ordem” (ou EDR = esquerda, direita, raiz), o acesso inicia-se
pelo nó da esquerda, desloca-se para o da direita e então segue à raiz deles. A Figura 14 apresenta uma árvore binária
com o acesso em pré-ordem (RED): F,B,A,D,C,E,G,I,H. Nessa mesma árvore, podemos ter o acesso em pós-ordem (EDR):
A,C,E,D,B,H,I,G,F ou em ordem (ERD): A,B,C,D,E,F,G,H,I.
TEMA 5 – CONTAGEM

O processo de contar coisas e eventos é muito importante. A maioria dos problemas que tratamos na matemática, na
computação e em outras áreas, implica contar objetos de conjuntos. Entretanto, esse processo nem sempre é fácil, e por
isso vamos abordar métodos de contagem para determinados conjuntos, de modo a aprender a pensar os problemas do

ponto de vista quantitativo. Neste tema, vamos ver como o pensamento quantitativo é útil para analisarmos problemas
discretos, especialmente na área da computação. Uma pesquisa sobre análise combinatória ajudará você a entender e
aprofundar seus conhecimentos sobre técnicas específicas de contagem, e entender por que essas técnicas são
importantes no estudo de processos discretos.

Existe um princípio, denominado princípio fundamental da contagem, ou também princípio multiplicativo, que

estabelece o seguinte: “quando um evento é composto por n etapas sucessivas e independentes, de tal modo que as
possibilidades da primeira etapa é x e as possibilidades da segunda etapa é y, resulta no número total de possibilidades
de o evento ocorrer, dado pelo produto (x) . (y)” (Gouveia, 2019).

Podemos então resumir esse princípio como sendo a multiplicação das possíveis opções pela quantidade de
elementos possíveis. Para auxiliar no processo de contagem, podemos lançar mão de arranjos, permutações e

combinações.

5.1 ARRANJO

Os arranjos são subconjuntos nos quais a ordem e a natureza fazem a diferença. Considerando um conjunto de n
elementos, organizados em subconjuntos de p elementos, sendo p ≤ n, utilizamos a seguinte fórmula para o arranjo:

An,p =

Para uma melhor compreensão, considere uma associação de escritores com 40 membros, cuja diretoria é composta
por quatro deles, que ocupam os cargos de presidente, vice-presidente, secretário e vice-secretário. De quantas formas é

possível organizar a composição dessa diretoria? Para responder, vejamos:

n = 40, p = 4 è A40,4 =    =  = 40x39x38x37 = 2.193.360

Portanto, podemos ter 2.193.360 diferentes composições de diretoria nessa associação. É importante ressaltar que a

ordem faz diferença, pois um membro poderá ocupar qualquer um dos cargos, tomando parte em diferentes
composições com os mesmos escritores!

5.2 PERMUTAÇÃO

A permutação nada mais é do que um caso específico de arranjo, no qual o número de elementos do conjunto (n) é
igual ao número total de elementos. Isso resulta em que o denominador, na fórmula do arranjo, seja igual a uma unidade

(1). A consequência é que a permutação é representada pela seguinte fórmula:


Pn=n!

Como exemplo de permutação, imagine um veículo que comporta seis passageiros, no qual viajarão seis pessoas.
Nesse caso, as pessoas irão ocupar os lugares em determinada ordem, e o número de pessoas é igual ao número de
assentos. Então usamos a permutação para calcular de quantas formas os passageiros poderão se acomodar no veículo:

P6 = 6! = 6.5.4.3.2.1 = 720

Então existem 720 diferentes formas de acomodar esses passageiros no veículo.

5.3 COMBINAÇÃO

Diferentemente dos arranjos, as combinações são subconjuntos para os quais a ordem dos elementos não importa,

porém, a sua natureza, sim. Deste modo, para obtermos uma combinação simples de n elementos combinados p a p,
sendo (p≤ n), recorremos à seguinte fórmula:

Cn,p =

Usando o exemplo do arranjo, consideremos que na mesma associação de escritores há um conselho composto de
três membros, todos com a mesma função. Nesse caso, a ordem não importa, e por isso usaremos a combinação para

calcular quantas formações desse conselho são possíveis:

n = 40, p = 3 è C40,3 =    =  =  = 9.880

Assim concluímos, que há 9.880 formações possíveis.

FINALIZANDO

O conhecimento e o uso dos elementos e métodos matemáticos aqui apresentados é de fundamental importância
para a computação. Recomendamos que você pesquise e faça os exercícios desta aula, que constam do Caderno de
Exercício e nas atividades práticas da disciplina.

REFERÊNCIAS

GOUVEIA, R. Análise combinatória. Toda Matéria, 14 maio 2019. Disponível em:


<https://www.todamateria.com.br/analise-combinatoria/>. Acesso em: 13 jun. 2019.

LEITE, A. E., CASTANHEIRA, N. P. Teoria dos números e teoria dos conjuntos. Curitiba: InterSaberes, 2014.

MACEDO, L. R. D., CASTANHEIRA, N. P., ROCHA, A. Tópicos de matemática aplicada. Curitiba: InterSaberes, 2013.

SPERANDIO, D. et al. Cálculo numérico. São Paulo: Pearson Education do Brasil, 2014.
STALLINGS, W. Arquitetura e organização de computadores. 10. ed. São Paulo: Pearson Education do Brasil, 2017.

TANEMBAUM, A. S. Organização estruturada de computadores. São Paulo: Pearson Prentice Hal, 2014.

Você também pode gostar