FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Multiplicar "N" Factoriales ?
Hola! gente pues mi nombre es Luisa y soy nueva en Delphi y en el foro :P
asi que vine a preguntar, estoy haciendo un programa en el que se resuelven formulas de probabilidad y una de ellas me pide la multiplicacion de "N" factoriales, es decir los que el usuario quiera... esto de aqui es el codigo con que saco el primer factorial
Ahora la cosa que me estaba preguntando es como le puedo hacer para que el usuario pueda meter cuantos factoriales quiera, (bueno números a los que les quiera sacar el factorial) y multiplicarlos para después tener un resultado.. solo quiero una ideita :P de como puedo hacerlo espero me puedan ayudar saludos! |
#2
|
||||
|
||||
Hola luisagpe, Bienvenida al foro.
Pero dime: ¿A que terefieres con multiplicar n factoriales? no te entiendo , podrias hacer un ejemplo o ser un poco mas explicativa, para poder ayudarte.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#3
|
||||
|
||||
mmm....
digamos que necesito sacar varios factoriales (los que el usuario desee, no se como hacer eso >.<) luego de obtener todos esos factoriales multiplicarlos... por ejemplo: ingreso el 5,4,3y 2 el factorial de esos seria 5=120 4=24 3=6 2=2 lo que quiero que al final haga es obtener 120*24*6*2 |
#4
|
||||
|
||||
Hola luisagpe !
Bienvenida al foro ... Se me ocurre que puedas tener algún tipo de acumulador que vaya haciendo la multiplicación del factorial que vaya ingresando el usuario... El acumulador comenzaría en 1... si el usuario introduce por ejemplo del 5! = 120, entonces el acumulador haría algo como
después de eso limpias la variable resultado_factorial y está lista para que el usuario siga introduciendo tantos factoriales como desee... Espero te sea de ayuda ! Cualquier duda hazla saber P.D. Si no lo has hecho, date una vuelta por la guía de estilo
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference |
#5
|
|||
|
|||
Hola luisa,
en el memo1 se pondrian los numeros de los cuales se quiere el producto de sus factoriales. |
#6
|
||||
|
||||
Corrigiendo un poquito..
Hay que tener en cuenta tambien el tipo de dato que devuelve la funcion Factorial por que si es un tipo pequeño, los resultados no serian los mismo ya que esta funcion factorial es una funcion progresivamente enorme. Por ejemplo el Factorial(31)=738197504. si saco el Factorial(32), ya no me soporta el tipo LongWord, me saldria un valor distinto al deseado o un error. Saludos......
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#7
|
||||
|
||||
[FONT=verdana,geneva,lucida,'lucida grande',arial,helvetica,sans-serif]Hola chicos gracias por la ayuda, se me hizo mas sencillo utilizar un acumulador, o por lo menos eso pensé... si aqui vengo a molestar otra vez ^^U les pondré como luce mi pantalla y el codigo completo del botón;
lo que completamente debe hacer esto es realizar la formula que esta en imagen dentro del formulario, una explicación sencilla; n!= un solo factorial r1, r2, r3... rn = muchos factoriales multiplicados entre si al final se hace un división... pero el programa me marca un error que no comprendo -.- [/font] |
#8
|
||||
|
||||
Me olvide de poner mi codigo
|
#9
|
|||
|
|||
el error te sale porque rs no debe ser entero. Debe ser de tipo double, ya que contendra un decimal.
|
#10
|
|||
|
|||
ten en cuenta tambien que tu codigo no esta haciendo n!/(r1!r2!...rn!) sino n!/n2! Tal como te decia (incluida la correcion de rgst, y teniendo en cuenta tambien lo del overflow del integer, esto es, valores demasiado grandes) lo mejor seria una funcion factorial aparte, y llamarla al necesitarla.
|
#11
|
|||
|
|||
y aun por otra banda, tienes
Código:
n! n! __________ y luego ___ r1!r2!..rn! rn! |
#12
|
||||
|
||||
segunda formula O.o!
no.. es solo una, es solo que se tiene que resolver lo de abajo y lo arriba :P he cambiado a double RS y ahora marca un error diferente en esta linea me dice que son incompatible los tipos Strings y double ¿no puedo hacer operaciones con labels? creo que ese es mi problema, pero no se bien -.- |
#13
|
|||
|
|||
si es la segunda formula es tansolo una divison de factoriales
entoces seria
ten en cuenta que n!/(r1!r2!...rn!) es diferente de n!/rn!. En el primero se supone que hay n erres, mientras que en el segundo que tansolo hay una rn. Última edición por coso fecha: 23-10-2008 a las 21:49:27. |
#14
|
||||
|
||||
bien bien... agregando la función factorial que puso rgstuamigo y corrigiendo la operación como me dijiste... al parecer la división ya sale, la cosa ahora es (gomen soy nueva en Delphi -.-) que despues de calcular eso
introduzco un nuevo valor en el campo edrs y no se suma al anterior... al parecer mi acumulador no me funciona ToT |
#15
|
|||
|
|||
lo siento, no te entiendo
|
#16
|
||||
|
||||
Ahh... perdon soy mala explicando =P
veras lo que pasa es que en la parte de abajo de la formula son muchos factoriales, que despues de haber obtenido quiero multiplicar, por eso me sugirieron un acumulador, pero no me esta funcionando... |
#17
|
|||
|
|||
entonces....quieres calcular n!/(r1!r2!...rn!)?
|
#18
|
||||
|
||||
exactamente, ese es el objetivo...
soy mala explicando perdon -.- |
#19
|
|||
|
|||
el primer codigo que te puse te calcula los r1!r2!...rn!. Estos deberan estar en un Memo (componente), por ejemplo.
|
#20
|
||||
|
||||
Hola luisagpe de nuevo. entonces lo que estas queriendo hacer es Permutaciones sin repeticiones donde la formula es:
donde n es el número de cosas que puedes elegir, y eliges r de ellas (No se puede repetir, el orden importa) ¿Es eso lo que quieres?
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Necesito llamar a métodos de clases "hija" desde su clase "padre" | Flecha | OOP | 17 | 20-04-2007 00:03:53 |
¿cuál es mejor: "close" o "application.terminate"? | unreal4u | Varios | 5 | 05-03-2007 11:01:19 |
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" | mamcx | Noticias | 51 | 31-10-2006 20:56:32 |
porque no me reconoce los caracteres "*" ni "%" cuando filtro | mrmago | Conexión con bases de datos | 10 | 27-01-2006 04:21:16 |
|