SoloCodigo

Programación General => Pascal => Mensaje iniciado por: ripley9998 en Lunes 21 de Diciembre de 2009, 01:45

Título: Secuencias Ordenadas
Publicado por: ripley9998 en Lunes 21 de Diciembre de 2009, 01:45
Hola por favor que alguien me ayude!! por mas que lo doy vueltas no soy capaz de hacerlo con tipos simples.
Necesito que me ayudeis alguien, darme alguna idea de como hacerlo. La parte del menu, y subprogramas de pedir datos se hacerlos pero no se como sacar la secuencia usando tipos simples, en fin dejo el enunciado completo haber si alguien me puede dar alguna idea.

El enunciado completo es el siguiente:

Supongamos que tenemos una caja que contiene infinitas fichas, cada ficha tiene escrita un número del 1 al 9. Queremos evaluar el número de veces que podemos ordenar las fichas de las que disponemos para que los números que muestren sumen una cierta cantidad.
Por ejemplo, si queremos obtener 4 como valor de la suma, tenemos 8 maneras
diferentes de disponer las fichas.
1 1 1 1
1 1 2
1 2 1
1 3
2 1 1
2 2
3 1
4
En la solución mostrada hemos seguido una ordenación similar al diccionario, donde
todas las palabras que empiezan por la ‘a’ aparecen antes que las que empiezan por la ‘b’. y aquellas empezando por ‘aa’ comienza antes que aquellas empezando por ‘ab’.
Hemos mostrado primero todas las que empiezan por 1 antes de aquellas que empiezan por 2 y lo mismo con las que empiezan por 1 1 antes que las que empiezan por 1 2.
Práctica:
Escribe un programa, que podrá tener los subprogramas que estimes convenientes, para determinar la n-ésima forma de ordenar las fichas para hacer una suma fija. Tú
programa debería recibir un entero s (1 0 s 0 32) y otro n (1 0 n < 231) y mostrar la nésima forma de ordenar las fichas, en orden de diccionario, para hacer la suma s.
Supondremos que el programa no recibirá un valor de n mayor que el número de formas de ordenar los bloques.
Ejemplo:
Veamos un ejemplo en el que se nos muestra la quinta forma de sumar el número
cuatro.
s -->4
n -->5
2 1 1




Muchas Gracias,
Título: Re: Secuencias Ordenadas
Publicado por: pichiotto en Domingo 27 de Diciembre de 2009, 00:10
Desde que introducistes el hilo en el foro no he dejado de darle vueltas a la cabeza pero tampoco veo la manera de hacerlo, habia pensado que tal vez con recursividad pero no veo claro el caso base. Creo que lo suyo es empezar  con "n" e  ir realizando restas sobre este (-1) y asi llegar hasta la última posibilidad (primera en tu ejemplo) 1111. De todas formas no lo veo pero sigo dandole vueltas al coco. Animo a los integrantes del foro a ver si lo sacamos entre todos aunque sea por orgullo personal de programador.