| 
		
	
	
	
		
	Mensajes: 5 
	Temas: 2 
	Registro en: Mar 2017
	
 Reputación: 
0 
	
	
		Buen dia a todosEspero me puedan ayudar con un ejercicio que me a dejado mi procesor de la Universidad
El problema consiste en desarrollar un programa en python que saque las series posibles
de un numero dado por el usuario..
Ejemplo:
No. 15
1+14 = 15, 2+13=15, etc.
1+2+12=15, 2+2+11=15, etc.
1+2+3+9=15, 3+4+8 = 15, etc.
1+2+3+4+5=15, etc
No bede de repetir ningun numero // Condicion
El programa me debe de dar las series posibles y contar cuantas son..
Lo he intentado con Ciclos, While y For, anidados
pero solo llego hasta el 3er digito y ya es mucho codigo desarrollado
Realmente estoy perdido no se que inventigar para realizarlo
No se si por clases, Matrices... T_T No tengo idea de como realizarlo..
Necesito un Genio....alguno por ahi?
   
	
	
	
		
	Mensajes: 1.308 
	Temas: 3 
	Registro en: Feb 2016
	
 Reputación: 
71 
	
	
		Hola, bienvenido. Probablemente la cantidad de soluciones para este mismo problema sea muy grande, aquí tienes la mía: Código: number = 15approaches = []
 
 for a in range(1, number + 1):
 b = number - a
 if b < a:
 break
 approaches.append("{} + {}".format(a, b))
 
 print(len(approaches))  # Cantidad de soluciones.
 print(approaches)
El resultado para el número 15 es:
 Cita:7['1 + 14', '2 + 13', '3 + 12', '4 + 11', '5 + 10', '6 + 9', '7 + 8']
 
El método es sencillo: a  y b  representan los sumandos. Realizamos un bucle donde a  recorre desde 1 hasta n  (15 en este caso), y b  siempre es el número necesario para llegar al límite (n ). La condición b < a garantiza que no se repitan las operaciones.
 
Espero que te sirva.
 
Un saludo.
	 
	
	
	
		
	Mensajes: 5 
	Temas: 2 
	Registro en: Mar 2017
	
 Reputación: 
0 
	
	
		Hola me resulto Genial este metodopero como le haria para que no solo funcione con 2 digitos
 
 Yo habia hecho esto de 2 digitos 1+14 = 15, pero me atoro al pasar 1+2+12=15
 
 n,x,i,s = 0,0,0,0
 print("Dame un Numero")
 n=int(input())
 if n>1:
 x=n
 while i!=n:
 i=i+1
 x=x-1
 s=s+1
 print(i,"+",x,"=",i+x)
 print("El numero:",n,"tiene",s,"series")
 
 Con este Resultado:
 
 Dame un Numero
 15
 1 + 14 = 15
 2 + 13 = 15
 3 + 12 = 15
 4 + 11 = 15
 5 + 10 = 15
 6 + 9 = 15
 7 + 8 = 15
 8 + 7 = 15
 9 + 6 = 15
 10 + 5 = 15
 11 + 4 = 15
 12 + 3 = 15
 13 + 2 = 15
 14 + 1 = 15
 15 + 0 = 15
 El numero: 15 tiene 15 series
 
 Pero aun no puedo hacerlo con todas las combinaciones posibles
 ///Hacer un D-F/Programa que lea un numero y de las series consecutivas
 ///ademas diga cuantas series tiene Ejemplo: 15 5+4+3+2+1=15, 7+8=15
 
 Si me ayudaras un poco mas a entender como modificarlo para encontrar todas las combinaciones posibles. te lo agradeceria mucho
 me han dicho que con los Arrays, pero la verdad es que no se ni como usarlas
 
 
 Muchas gracias de antemano Francisco
 Saludos
 
	
	
	
		
	Mensajes: 1.308 
	Temas: 3 
	Registro en: Feb 2016
	
 Reputación: 
71 
	
	
		Bien, en ese caso, deberías usar lo que en matemática se llama Partición (Wikipedia ). Se trata de un algoritmo para encontrar todas las representaciones de un número entero como la suma de otros números enteros menores. Por ejemplo, como se muestra en el artículo:
4 = 3 + 1 = 2 + 2 = 2 + 1 + 1 = 1 + 1 + 1 + 1 
En este enlace  tienes una solución:
 Código: >>> def partition(number):...     answer = set()
 ...     answer.add((number, ))
 ...     for x in range(1, number):
 ...         for y in partition(number - x):
 ...             answer.add(tuple(sorted((x, ) + y)))
 ...     return answer
 ...
 >>> partition(4)
 set([(1, 3), (2, 2), (1, 1, 2), (1, 1, 1, 1), (4,)])
Considerando que este código funciona con listas y no con iterables, puede resultar bastante pesado para grandes números. Si esto es un problema para tí, puedes encontrar otros algoritmos más optimizados en la web con el nombre de "Partición" o "Partition" en inglés.
 
Saludos.
	 
	
	
	
		
	Mensajes: 5 
	Temas: 2 
	Registro en: Mar 2017
	
 Reputación: 
0 
	
	
		Muchas Gracias FranciscoMe a resultado bien ese codigo
 
 Ahora ya solo me toca hacerlo mismo en java...
 y gracias al metodo de particiones pues ya tengo una idea de como hacerlo
 por que realmente esta muy perdido de como realizar este problema..
 
 Saludos
 
	
	
	
		
	Mensajes: 1.308 
	Temas: 3 
	Registro en: Feb 2016
	
 Reputación: 
71 
	
	
		Perfecto, lamentablemente no puedo ayudarte en Java, pero cualquier otra duda aquí estaremos.
 Un saludo.
 |