• Viernes 8 de Noviembre de 2024, 21:40

Autor Tema:  Triangulo De Pasca  (Leído 3138 veces)

Lastent

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Triangulo De Pasca
« en: Martes 29 de Marzo de 2005, 02:56 »
0
Porfavor queria pedirles ayuda, lo que pasa es que no se me ocurre nada para programar el triangulo de pascal, no les pido que me de el programa fuente si no que me den ideas de como puedo hacer

Lastent.

fuhrer

  • Miembro MUY activo
  • ***
  • Mensajes: 329
  • Nacionalidad: mx
    • Ver Perfil
    • http://admin.busquenoseninternet.com
Re: Triangulo De Pasca
« Respuesta #1 en: Martes 29 de Marzo de 2005, 04:11 »
0
Hola que tal.

Una forma facil es usando la formula de las combinaciones que es:

Código: Text
  1. n!/k!(n-k)!
  2.  

y solo con 2 ciclos for, en el primero varias tu n, hasta donde quieras mostrar el triangulo y en el segundo varias la k de 0 a n, y el resultado es lo que te devuelva la formula de ariba.

Espero que sepas como usarla y te sirva.

Hasta luego.

Skywalker

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Triangulo De Pasca
« Respuesta #2 en: Miércoles 22 de Junio de 2005, 02:12 »
0
Bueno sabes que para hacer el triangulo de pascal si no te has dado cuenta son potencias de 11

 11^0 =       1
 11^1=        11
 11^2 =      121  y asi sucesivamente asi lo que tienes que hacer es

program tria_pascal;
var
     factor,i:integer;
begin
  factor:=1;
  for i:=1 to 12(depende cuantas filas quieres que tenga el triangulo de pascal) do
    begin
     writeln(factor);
     factor:=factor*11;
     end;
end.

Lastent

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Triangulo De Pasca
« Respuesta #3 en: Miércoles 22 de Junio de 2005, 06:03 »
0
Eso de las potencias esta mal porque si te das cuenta solo funciona hasta 11 elvevado a la 4 o 5

Skywalker

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Triangulo De Pasca
« Respuesta #4 en: Jueves 23 de Junio de 2005, 01:21 »
0
No man lo de las potencias es correcto lo que pasa es que te has confundido ya que tu piensas que en la potencial 6 no sale la suma pero si te das cuenta como la suma es mayor a 10 le pasa una unidad al siguiente digito
1
11
121
1331
14641
161051
1771561
19487171
214358881

fuhrer

  • Miembro MUY activo
  • ***
  • Mensajes: 329
  • Nacionalidad: mx
    • Ver Perfil
    • http://admin.busquenoseninternet.com
Re: Triangulo De Pasca
« Respuesta #5 en: Jueves 23 de Junio de 2005, 04:07 »
0
Se supone que el triangulo de pascal es:
Código: Text
  1.  
  2.          1
  3.         1 1
  4.        1 2 1
  5.      1 3  3 1
  6.    1 4  6  4 1
  7.   1 5  10 10 5 1
  8. 1 6 15 20 15 6 1
  9.          .
  10.          .
  11.          .
  12.  
  13.  
Y lo que has sugerido solo sirve hasta 11^4, como ya lo habia mencionada antes, la mejor farma es utilizando la formula de las conbinaciones:
Código: Text
  1.  
  2.      n! / (k!(n-k)!)
  3.  
  4.  

La cual genera el triangulo a la perfeccion, ya que esta tambinén es usada en el polinomio de Newton y tiene muchas otras aplicaciones.

Bueno, espero que alla quedado todo claro y que no haya inconformidades.

Hasta luego.

gangister

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Triangulo De Pasca
« Respuesta #6 en: Viernes 26 de Agosto de 2005, 22:17 »
0
Bueno esas son las formas matematicas, pero suponiendo que no seas tan buen matematico o quieras hacerlo utilizando el potencial de la computadora, deberias intentar generar linea por linea. Cada lineala puedes obtener de la anterior utilizando una recursiva. Este procedimiento quiza te de una idea de lo que hay que hacer.

La razon por la cual empieza el n es dos, es porque el n=1 es usado para guardar un cero, que se utiliza para sacar la suma de los unos exteriores.

Procedure GenerarLinea(numero:integer);

var
n:integer;
begin
n:=2;
if numero=1 then Linea[2]:=1 else
   begin
   while n<=numero do
      begin
      Linea[n]:=LineaPrevia[n]+LineaPrevia[n-1];
                Linea[n+1]:=LineaPrevia[n]+LineaPrevia[n+1];
      n:=n+1;
      end;
   end;

EscribeLinea(numero);
GuardaLinea(numero);
end;