![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Yo sigo en la línea de las respuestas que ya te han dado. Mi planteamiento es una función que dado un número devuelva todas los posibles productos de 2 números que den como resultado el número pasado. Se me ocurre que por defecto ya tenemos una tupla (1,numeroPasado) , y despues bastaría con un bucle incrementando i comparando cuando numeroPasado mod i = 0, para cada vez que se cumpla la condición añadir una tupla mas a la lista de posibles semillas del número pasado (i,numeropasado/i).
Asi tendras el vertice y todas las posibles 2º lineas de triangulo que daran como resultado ese vertice. Según cuantas lineas quieres que tenga el triangulo te tocara para todas esas tuplas buscar los divisores comunes de los dos elementos teniendo en cuenta solo las tuplas que tengan divisores comunes. Tendremos una 3º linea por cada divisor común con 3 números: en medio el divisor común, a la izquierda el numero de la izuierda en la 2º linea dividido entre el divisor comun y a la derecha el número de la derecha de la 2º líneda dividida entre el divisor común. La 3º línea se complica y para cada divisor común del número de la izquierda y del centro además el número del centro/divisor común debe de ser divisor común del número del centro y el número de la derecha... En fín me he puesto a escribir mientras pensaba y me he liado, lo cierto es que si parece posible. PD: Neftalí se me ha adelantado mientras escribía esto explicando como siempre todo con mucha mas claridad. (y en 2 lineas, nnf, nnnf) Última edición por engranaje fecha: 03-03-2015 a las 14:09:36. |
|
#2
|
||||
|
||||
|
pues la verdad es que yo me lio y no soy capaz de hacer lo que indicais. Lo que si que se me ha ocurrido leyendoos es que si hago lo que indicais pero en vez de dividir multiplico obtendria una piramide divertida para hacer divisiones y obtener el resultado de su cima. El caso es que en ninguno de los casos se me ocurre como hacerlo. El caso es mas complejo de lo que parece ya que, en lo que exponia al iniciar este tema, la linea de dos valores (la que esta justo debajo de la cima tiene que contener valores mas o menos grandes y, cuando decis de probar todos los divisores, me puedo encontrar que hay valores pequeños que pueden ser divisores como 1, 2, y 3 y el caso es que es muy dificil que se llegue a ese nivel de la pirámide con un producto tan pequeño. La verdad es que no lo veo. ¿Habeis probado alguno a ver si os sale o es mas complejo de lo que parece? Como es por curiosidad pues no hay requisitos, podria ser por ejemplo que muestre la primera solucion, o tambien que las calcule todas y luego mostrar una al azar, o por ejemplo mostrar las x primeras, o cualquier cosa por el estilo. La idea surgio porque a mi niña le mandaron en el cole un trabajo de matematicas divertidas y buscando por google di con algo llamado piramide divertida y que las hay para sumas y multiplicaciones. Ya hice que un codigo resuelva ambas y luego se me ocurrio hacer lo inverso pero ahi ya me atasqué. Por cierto, no vi ninguna piramide para divisiones asi que no estaria mal aplicar lo que indicais para crear piramides para que practique las divisiones tambien.
|
|
#3
|
|||
|
|||
|
A ver si no me lio... La cosa es que de todos esos posibles valores para la segunda línea vas a tener que descartarlos casi todos a no econtrar divisores comunes entre ambos. Es decir el número del medio de la tercera linea debe ser un divisor común a los dos números de la segunda, Si quieres puedes buscar directamente el máximo común divisor y pillar la tupla con el máximo comúm divisor mas alto, asi elminiarias esos números bajos que tanto molestan.
Lo que pasa es que como la tercera línea también debe tener divisores comunes igual llegas a un punto muerto en la tercera línea de la piramide.... De entrada y si es por jugar yo probaría lo que digo de escoger la tupla con el máximo común divisor mas alto a ver que sale. |
|
#4
|
||||
|
||||
|
Correcto. Esos casos se consideran de ERROE. Por eso se llama "PRUEBA Y ERROR". Por que se evalúan todos los casos posibles que pueden ser miles. De todos esos tal vez unos cuantos, uno sólo o ninguno sean viables (CORRECTOS).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#5
|
||||
|
||||
|
Yo creo que la cosa no es tan difícil.
Te recomiendo dividir el problema en pasos pequeños. Por ejemplo, primer paso: (PASO 1) Dado un número (864) obtener todos sus divisores: 1-2-3-4-6-8-9-12-16-18-24-27-32-36-48-54-72-96-108-144-216-288-432 ![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
||||
|
||||
|
(PASO 2): Utilizando esos divisores, buscar todas las parejas que son válidas para un nivel inferior.
![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#7
|
||||
|
||||
|
Primer problema, estoy intentando crear una funcion a la cual se le da un valor y te devuelve una matriz con todos los divisores posibles. El caso es que no se como hacerlo para pasar un puntero de tipo int y que al retornar tenga en ese puntero la matriz.
Tengo este codigo: Código PHP:
Edito: Ya lo solucione esta parte. Última edición por aguml fecha: 04-03-2015 a las 14:48:30. |
|
#8
|
||||
|
||||
|
Hola aguml.
Yo tampoco entiendo bién lo que buscas, pero en una parte mencionas: Cita:
Código PHP:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#9
|
||||
|
||||
|
En C no se puede pasar el apuntador por referencia de ese modo. Lo hice de otro modo y a ver si me dices si es correcto o es una locura lo que hago.
El caso es que ya tengo solucionado el nivel 2 y 3 de la piramide y solo me falta la parte de los 4 valores de la base que ahi si que ya me pierdo. A ver si podeis ayudarme. Ya digo que esta aplicacion no sirve para nada ya que lo normal es que tengas los 4 valores de la base y te pidan resolver la piramide para saber cuanto vale el valor del pico y no al reves. Lo hago por aprender un poco y divertirme simplemente. Lo que comentais de prueba/error parece mas encontrar un serial por fuerza bruta jejeje. A ver si podeis orientarme aunque sea con un seudocodigo para ver como sería y de paso decirme si hago algo mal en el codigo o todo jejeje. Hacerlo con recursividad... no se me da nada bien la recursividad y si así me está costando sudor y lagrimas... no quiero ni imaginarme con recursividad jajaja. Aquí lo que tengo de codigo hasta ahora (espero comentarios): Código PHP:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Generar base de datos en MSSQL a partir de un Esquema XML | Ledian_Fdez | SQL | 1 | 17-05-2013 10:59:17 |
| Piramide Poblacional, como? | El_Raso | Varios | 0 | 13-04-2009 20:35:54 |
| Restaurar base de datos a partir de un MDF | erickperez6 | MS SQL Server | 1 | 16-08-2007 21:11:40 |
| como mostrar una ventana con base al resultado de una busqueda | Nelly | Varios | 3 | 02-02-2006 18:16:20 |
| Como saber el tipo de componentes a partir de un string? | Roger | OOP | 2 | 02-04-2004 13:21:48 |
|