VB - Calculando Combinações, Permutações e Fatorial de um número
Hoje vamos falar sobre Permutações, Combinações e Fatorial.
Se você não fugiu da escola, deve lembrar das aulas de matemática quando algum dia alguém tentou lhe ensinar a calcular permutações.
Vamos então começar lembrando a teoria iniciando com o conceito sobre arranjos...
Arranjos
Arranjos são agrupamentos nos quais a ordem dos elementos faz diferença.
Por exemplo, os números de três algarismos formados pelos elementos {1,2 e 3} são:
312, 321, 132, 123, 213, 231
Esse agrupamento é um arranjo, pois a ordem dos elementos 1, 2 e 3 é diferente; È considerado arranjo simples, pois os elementos não se repetem.
Para que tenhamos arranjos simples é preciso ter um conjunto de elementos distintos com uma quantidade qualquer de elementos, sendo que os arranjos simples formados irão possuir n elementos, e essa quantidade será igual ou menor que a quantidade de elementos do conjunto.
Permutação
O conceito de permutação expressa a idéia de que objetos distintos podem ser arranjados em inúmeras ordens distintas.
Assim seja um conjunto A com n elementos, chamamos de permutação a todo arranjo com n elementos retirados de A.
A cada um dos agrupamentos que podemos formar com certo número de elementos distintos, tal que a diferença entre um agrupamento e outro se dê apenas pela mudança de posição entre seus elementos, damos o nome de permutação simples.
Exemplos:
1) Seja A um conjunto com os elementos {a, b, c}.
As permutações possíveis de A são: {(a,b,c);(a,c,b);(b,a,c);(b,c,a);(c,a,b);(c,b,a)}. Total de 6 permutações.
2) Quantos anagramas possui a palavra OBA ?
As permutações da palavra são: {(OBA;(OAB);(BAO);(BOA);(ABO);(AOB)}. Total de 6 permutações.
Assim para obter o número de permutações com m elementos distintos de um conjunto, basta escolher os m elementos em uma determinada ordem.
O número de permutações de m elementos será expresso por : P(m)
A expressão para seu cálculo será dada por:
P(m) = m(m-1)(m-2)...(m-p+1)...3.2.1
Podemos também escrever : A(m,m) = P(m)
O Arranjo de m elementos dos quais m elementos participam é igual a Permutação destes elementos.
Uma forma simplificada de expressar a permutação de m elementos é através do fatorial: P(m) = m!
Este símbolo de exclamação posto junto ao número m é lido como o fatorial de m, onde m é um número natural.
O fatorial de um número inteiro não negativo pode ser definido de uma forma recursiva através da função P=P(m) ou com o uso do sinal de exclamação:
(m+1)! = (m+1).m! Ex: 3! = 3.2.1! => que é a mesma coisa que : 3.2.1 = 6
Nota : Lembrando que : 0! = 1 (o fatorial de zero é igual a 1) e que 1! = 1 ( o fatorial de 1 é igual a 1)
Combinação
Uma combinação sem repetição, em análise combinatória, indica quantas variedades de subconjuntos diferentes com n elementos existem em um conjunto U , com r elementos. Só é usada quando não há repetição de membros dentro do conjunto.
Na combinação simples, a ordem dos elementos no agrupamento não interfere. São arranjos que se diferenciam somente pela natureza de seus elementos.
Portanto, se temos um conjunto A formado por n elementos tomados p a p, qualquer subconjunto de A formado por p elementos será uma combinação, dada pela seguinte expressão:
(fonte: Brasil Escola)
Fatorial
Na matemática, o fatorial (AO 1945: factorial) de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n.
A notação n! foi introduzida por Christian Kramp em 1808.(Wikipédia)
Considerando n um número natural maior que 1 (um), podemos definir como fatorial desse número n (n!) o número:
n! = n(n 1)(n 2)(n 3) * ...* 3 * 2 * 1
Lê-se n! como n fatorial ou fatorial de n.
Veja alguns exemplos de cálculos de fatorial de um número :
5! = 5 * 4 * 3 * 2
* 1 = 120
8! = 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 40320
6! = 6 * 5 * 4 * 3 * 2 * 1 = 720
10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 3.628.800
Com isso creio que já deu para recordar o básico sobre Arranjo, Permutação, Combinação e Fatorial.
Vamos então ao que realmente interessa...
Como podemos fazer para implementar esses cálculos no Visual Basic ?
Fazendo Cálculos com o Visual Basic
A seguir temos um singelo programa feito na linguagem Visual Basic que permite calcular permutações, combinações e o fatorial de um número dado:
O cálculo não esta otimizado e existe um valor máximo acima do qual poderá ocorrer um erro de overflow, mas você pode aperfeiçoar o algoritmo tornando-o mais rápido e calculando valores maiores.
Pegue os projetos completos aqui : CombinacaoVB.zip
Eu sei é apenas VB mas eu gosto...
"Meus filhinhos , estas coisas vos escrevo, para que não pequeis; e se alguém pecar, temos um advogado para com o Pai, Jesus Cristo, o justo." I João 2:1
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#