Guest - paulo - Postado Abril 3, 2005 Denunciar Share Postado Abril 3, 2005 Olá,Alguém poderia me ajudar na implementação desse algorítimo que é voltado à fazer combinações?Preciso fazer esse como exemplo e o resto tento me virar, mas não sei nem por onde começar:Function: Combination(n,r) w = n - r d = 1 For i = 2 to n d = d * i End e = 1 For i = 2 to r e = e * i End f = 1 For i = 2 to w f = f * i End x = e * f x = d / x Return xObrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafaelbortoletto Postado Abril 3, 2005 Denunciar Share Postado Abril 3, 2005 Fiz este código usando o Dev-C++: #include <iostream.h> #include <stdlib.h> #include <stdio.h> int Combination(int n, int r) { int e = 1, f = 1, x = 1, d = 1; int w = n - r; for ( int i = 2; i < n; i++ ){ d = d * i; } for ( int i = 2; i < r; i++){ e = e * i; } for ( int i = 2; i < w; i++){ f = f * i; } x = e * f; x = d / x; return x; } int main() { int n, r; printf("entre com o valor n:"); scanf("%d",&n); printf("entre com o valor r:"); scanf("%d",&r); printf("valor de x: %d",Combination(n,r)); system("PAUSE"); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 3, 2005 Denunciar Share Postado Abril 3, 2005 "Traduzindo" isso aí direto para C/C++, acredito que ficaria:double Combination(int n, int r) { int w = n-r; int d = 1; int i; double x; for (i=2; i<=n; i++) d = d * i; int e = 1; for (i=2; i<=r; i++) e = e * i; int f = 1; for (i=2; i<=w; i++) f = f * i; x = e * f; x = d / x; return x; }Só não sei é realmente o que você quer.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Abril 4, 2005 Denunciar Share Postado Abril 4, 2005 "Traduzindo" isso aí direto para C/C++, acredito que ficaria:double Combination(int n, int r) { int w = n-r; int d = 1; int i; double x; for (i=2; i<=n; i++) d = d * i; int e = 1; for (i=2; i<=r; i++) e = e * i; int f = 1; for (i=2; i<=w; i++) f = f * i; x = e * f; x = d / x; return x; }Só não sei é realmente o que você quer.Abraços,Graymalkin Olá Graymalkin,No seu código o Borland c++ Builder6, está dando esses erros:Build [Linker Error] Unresolved external '__InitVCL' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl [Linker Error] Unresolved external '__ExitVCL' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl [Linker Error] Unresolved external 'WinMain' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\C0W32.OBJNo DEV-c++ compilou sem problemas.O que poderia ser?Agradeço imensamente o apoio. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Abril 4, 2005 Denunciar Share Postado Abril 4, 2005 Fiz este código usando o Dev-C++: #include <iostream.h> #include <stdlib.h> #include <stdio.h> int Combination(int n, int r) { int e = 1, f = 1, x = 1, d = 1; int w = n - r; for ( int i = 2; i < n; i++ ){ d = d * i; } for ( int i = 2; i < r; i++){ e = e * i; } for ( int i = 2; i < w; i++){ f = f * i; } x = e * f; x = d / x; return x; } int main() { int n, r; printf("entre com o valor n:"); scanf("%d",&n); printf("entre com o valor r:"); scanf("%d",&r); printf("valor de x: %d",Combination(n,r)); system("PAUSE"); return 0; } Rafael,Muito obrigado, compilou sem problemas, mas ainda estou analisando o código para fazer o que realmente quero.Mais uma vez obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Abril 4, 2005 Denunciar Share Postado Abril 4, 2005 o Rafael escreveu certinho do jeito que você queria eu só acho que as condições de saida do loop for....deveriam ser for ( int i = 2; i <= n; i++ ){ d = d * i; } for ( int i = 2; i <= r; i++){ e = e * i; } for ( int i = 2; i <= w; i++){ f = f * i; } segundo o seu código......te+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 5, 2005 Denunciar Share Postado Abril 5, 2005 No seu código o Borland c++ Builder6, está dando esses erros:Build [Linker Error] Unresolved external '__InitVCL' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl [Linker Error] Unresolved external '__ExitVCL' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl [Linker Error] Unresolved external 'WinMain' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\C0W32.OBJNo DEV-c++ compilou sem problemas. Eu não tenho o Builder aqui para testar, e tinha feito com o Dev-C++ mesmo. Todavia, o código compila normal com Borland C++ 5.5 (versão para linha de comando apenas).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 paulo_antonio_soares Postado Abril 5, 2005 Denunciar Share Postado Abril 5, 2005 o Rafael escreveu certinho do jeito que você queria eu só acho que as condições de saida do loop for....deveriam ser for ( int i = 2; i <= n; i++ ){ d = d * i; } for ( int i = 2; i <= r; i++){ e = e * i; } for ( int i = 2; i <= w; i++){ f = f * i; } segundo o seu código......te+ Kandrade,Você tinha razão.Agora está funcinando perfeitamente.Obrigado.Paulo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - paulo -
Olá,
Alguém poderia me ajudar na implementação desse algorítimo que é voltado à fazer combinações?
Preciso fazer esse como exemplo e o resto tento me virar, mas não sei nem por onde começar:
Function: Combination(n,r)
w = n - r
d = 1
For i = 2 to n
d = d * i
End
e = 1
For i = 2 to r
e = e * i
End
f = 1
For i = 2 to w
f = f * i
End
x = e * f
x = d / x
Return x
Obrigado.
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.