Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GeorgeMaxwell

[Resolvido] algoritmo - visualg

Recommended Posts

Aê pessoal tô precisando de uma ajuda nessa questão da facudade, não tenho a menor idéia de como começar!

Quem der qualquer Empurrãozinho eu agradeço!

 

Considere a função Comb(n, k), que representa o número de grupos distintos com k pessoas que podem ser formados a partir de n pessoas. Por exemplo, Comb(4, 3) = 4, pois com 4 pessoas (A, B, C, D), é possível formar 4 diferentes grupos: ABC, ABD, ACD e BCD. Sabe-se que:

 

comb(n,k) = n se k = 1

1 se k = n

comb(n-1,k-1)+comb(n-1,k) se 1 < k < n

 

Implementar no Visualg uma função recursiva para Comb (n, k).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais entradas?

como você esta tentando?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão é feita a partir da formula n!/p!*(n-p)! vem da analise combinatória. Não estou conseguindo implementar a formula no algoritmo como segue.

algoritmo "combinação"
// Função :
// Autor :
// Data : 01/08/2010
// Seção de Declarações

funcao comb(n,k:inteiro):real
var
calc1,calc2,resultado1,resultado2:inteiro
formula:real
inicio

se (n = 0) entao
calc1 <- 1
senao
se  (k = 0) entao
calc2 <- 1
senao
calc1 <-  n*comb(n-1,k)
calc2 <- k*comb(n,k-1)
fimse
fimse
resultado1 <- calc1
resultado2 <- calc2
formula <- (resultado1 /resultado2*(resultado1-resultado2))
retorne formula
FimFuncao

var
n,k:inteiro
chamada:real
inicio
escreval ("Quantas pessoas para fomar os grupos?")
leia (n)
escreval ("Quantos grupos deseja realiza?")
leia (k)
se (k = 1) entao
   escreval ("Quantidade de grupos que podem ser formados: ",n)
senao
   se (k = n) entao
      escreval ("Quantidade de grupos que podem ser formados: 1 ")
   senao
      se (k > 1) e (k < n) entao
         chamada <- comb(n,k)
         escreval (chamada)
      fimse
   fimse
fimse

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deveria ser + ow - assim:

 

Função Comb Inteiro N Inteiro K Retorna Inteiro
    
    Se (K = 1) Função_Retorna (N)
    Senão Se (K = N) Função_Retorna (1)
          Senão Resp <- Comb(n-1,k-1)+comb(n-1,k)   
          Fim_Se
    Fim_Se
    Função_Retorna (Resp)
Fim_Função

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

é dessa maneira mesmo o algoritmo final ficou da seguinte maneira:

 

algoritmo "combinação"

funcao comb(n,k:inteiro):inteiro
inicio

se (n = 0) entao
   retorne 1
senao
   se (k = 1) entao
      retorne n
   senao
      se (n = k) entao
         retorne 1

      senao
         se (k > 1) e (k < n) entao
            retorne ((comb(n-1,k-1))+(comb(n-1,k)))
         fimse
      fimse
   fimse
fimse

FimFuncao


var
n,k,chamada:inteiro

inicio
escreval ("Quantas pessoas?")
leia (n)
escreval ("Quantos grupos deseja realiza?")
leia (k)
chamada <- comb(n,k)

escreval ("Quantida de maneiras que podem ser formados os grupos: ",chamada)
fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.