Logo Espacio Linux Paypal - Acepta pagos con tarjeta en tu negocio      
Portada Taller Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

Boletín Espacio Linux
Las novedades del sitio y el mundo Linux en tu email.


Usuarios
Bienvenido, Anónimo

     Miembros:
Último: Drakoos
Nuevos hoy: 0
Nuevos ayer: 15
Total: 29301

     Navegando:
Anónimos: 116
Miembros: 3
Total: 119


Miembros conectados:

01: epacheco
02: Raul_Rodriguez
03: pirolas

Mensajes recientes
 Instalación de distribuciones
 Distro para arreglar un ordenador con Windows
 Mini-Distro que recomienden con xmms y paquetes .rpm
 Software
 Procesador de texto para X con soporte ASCII
 gcc OpenSuse 11
 Hardware
 Intalacion de wireless Mini navigator Genius (mouse)
 Como instalar el router inalambrico de telefonica
 Programación
 Librerias Graficas para C .
 Que librerias para trabajar con descriptores?
 Sistema
 Como conecarme auna red de windows por medio de linux mandra
 Dos Distros en GRUB
 Seguridad
 que aplicaciones usas para customizar la seguridad?
 Dudas con un firewall (software)
 Redes y Servidores
 /lib/modules/2. 6.24.5-smp/modu les.dep (Mandriva) [Solucionad
 Rede No funciona en Linux en Windows sí. ¿sugerencia?
 Proyectos
 Sugerencia para el nombre de un proyecto
 como programar el puerto serial en matlab?
 Debates
 Ubuntu para los reticentes a Linux
 qué no les gusta de Linux?
 El Café
 Redes sociales.
 Unix is sexy (Humor)
 Desarrollo Web
 Entorno a mi proyecto fin de carrera
 Joomla y varios feed
 Documentación
 /etc/passwd El archivo de passwords
 [Espacio Linux] fstab en profundidad
 Screenshots
 Mi Desktop de Septiembre
 Ubuntu de Blackbird
 KDE
 restaurar taskbar KDE 3.5 (SOLUCIONADO)
 error al inicio del KDE initializing System Services
 GNOME
 Como se llaman los objetos agregables al panel? (Ej: Clíma)
 Driver de tarjeta Wireless
 Otros escritorios y entornos
 gestor grafico de linpus
 inicio de programas en fluxbox
 X Window
 error al inicio del KDE initializing System Services
 Problemas con Xorg y Gdm

[ Entrar a los foros ]
Buscar

Sitios amigos

Espacio Linux :: Ver tema - 6 sumandos, cada uno del 1 al 39 que den 128?
ReglamentoReglamento general de los foros
 FAQFAQ  BuscarBuscar  Grupos de usuariosGrupos de usuarios  Miembros  PerfilPerfil
  Mensajes privadosMensajes privados  

6 sumandos, cada uno del 1 al 39 que den 128?

Publicar nuevo tema  Responder al tema  Foros de discusión -> Programación
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
blackbird87
Forista Medio
Forista Medio



Miembro No. 8795
Registrado: Jul 11, 2005
Mensajes: 354

MensajePublicado: Mie May 07, 2008 2:15 am    Asunto: 6 sumandos, cada uno del 1 al 39 que den 128? Responder citando

Hola, recien me estoy iniciando en programacion, un poco de c y visual .net .... necesito hacer un programa que haga lo siguiente.

con cifras del 1 al 39, imprimir todas las sumas que de 6 digitos que den 128.

Ejemplo 5+10+15+20+50+28 = 128

Estoy buscando algun algoritmo para pasarlo a c++ o visual.

Solo he encontrado esto pero no conosco ese lenguaje y no puedo deducir el proceso que hace. http://foro.migui.com/phpbb/viewtopic.php?p=16545&sid=7e0a97 7a5f97a8eac6dd0c373a296de7

Lo que se me habia ocurrido a mi es buscar todas las posibles sumas y luego con condiciones imprimir las sumas de 6 digitos que den 128,

O tambien mediante permutaciones, meter los 39 numeros a un vector o matriz y luego con algun algoritmo ir pasando de a 6 cifras a un vector y convinar todas las posibles convinaciones de 6 cifras utilizando los numeros del 1 al 39. Pero no seme ocurre como.

Saludos.... adios.

* Titulo editado por el moderador por decir muy poco del tema a tratar, por favor, revisa el reglamento del foro
_________________
Blackbird House

Blackbird House
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del usuario
fpuga
Forista Medio
Forista Medio



Miembro No. 23461
Registrado: Aug 25, 2007
Mensajes: 304
Ubicación: Galicia - España

MensajePublicado: Mie May 07, 2008 3:22 am    Asunto: Re: Ayuda con algoritmo Responder citando

seis for aninados recorriendo los posibles números
_________________
Di no a las bombas de racimo
Mi blog: Conocimiento Abierto
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del usuario
akodo
Forista Medio
Forista Medio



Miembro No. 25400
Registrado: Nov 28, 2007
Mensajes: 192

MensajePublicado: Mie May 07, 2008 2:54 pm    Asunto: Re: Ayuda con algoritmo Responder citando

Supongo que podras hacer algo asi:
Código:

function añadir_numero(int array[6], int vez)
{
   if (es solucion) devolver array
   else
   for(i=1;i<40;i++)
   {
        array[vez]=i;
        if (suma de array <= 128)
              añadir_numero(array,vez+1)
    }
    array[vez]=0;
}

El codigo seguro que esta incompleto pero creo que es suficiente para dar una idea de lo que deberia hacer
La idea es hacer un programa recursivo que haga lo siguiente:
1º añade a la posicion correspondiente del vector el numero i
2º comprueba que la suma del vector es menor o igual a 128
3º si es mayor, el propio codigo se encarga de sobreescribir el resultado e intentarlo con el numero siguiente
4º si es menor o igual, se ejecuta el mismo codigo de la funcion pero para el elemento siguiente
5º si no hay mas candidatos, no se devuelve nada y se pone en la posicion actual un 0. Al acabar la ejecucion de la funcion se ejecutara la anterior que habia sido suspendida, continuando (backtracking)
6º si se llega a una solucion entonces se devuelve esa solucion

Si necesitas todas las soluciones, seria mejor almacenarlas en un vector segun se vayan generando, devolviendo este vector al acabar la ejecucion de la funcion.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
epacheco
Forista Medio
Forista Medio



Miembro No. 20630
Registrado: Apr 07, 2007
Mensajes: 311

MensajePublicado: Mie May 07, 2008 4:09 pm    Asunto: Re: 6 sumandos, cada uno del 1 al 39 que den 128? Responder citando

y tiene que ser en C? en Haskell con listas por comprensión creo que sería muy facil o en prolog gracias a la unificación y resolución saldría rápido....
_________________
PaGe
http://pageegap.blogspot.com/
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del usuario MSN Messenger
zeka
Forista Legendario
Forista Legendario



Miembro No. 8222
Registrado: Jun 07, 2005
Mensajes: 2123

MensajePublicado: Mie May 07, 2008 4:58 pm    Asunto: Re: Ayuda con algoritmo Responder citando

blackbird87 escribió:
Hola, recien me estoy iniciando en programacion, un poco de c y visual .net .... necesito hacer un programa que haga lo siguiente.

con cifras del 1 al 39, imprimir todas las sumas que de 6 digitos que den 128.

Ejemplo 5+10+15+20+50+28 = 128 La que está en rojo pasa de 39; no sería válida

Estoy buscando algun algoritmo para pasarlo a c++ o visual.

Solo he encontrado esto pero no conosco ese lenguaje y no puedo deducir el proceso que hace. http://foro.migui.com/phpbb/viewtopic.php?p=16545&sid=7e0a97 7a5f97a8eac6dd0c373a296de7

Lo que se me habia ocurrido a mi es buscar todas las posibles sumas y luego con condiciones imprimir las sumas de 6 digitos que den 128,

O tambien mediante permutaciones, meter los 39 numeros a un vector o matriz y luego con algun algoritmo ir pasando de a 6 cifras a un vector y convinar todas las posibles convinaciones de 6 cifras utilizando los numeros del 1 al 39. Pero no seme ocurre como.

Saludos.... adios.


Querrás decir la suma de 6 números porque entre 1 y 39 los números del 1 al 9 tienen un dígito; los restantes dos. Por otra parte, la restricción de que sumen 128 es importante porque significa que existen diferentes tipos de "topes" (nunca podrás tener cuatro 39 juntos: suman 156) como el siguiente:

Código:
39+39+39+4+4+3=128


Otras soluciones válidas serían:

Código:
39+39+39+4+3+4=128


Código:
39+39+39+3+4+4=128


Código:
39+39+38+4+4+4=128


y así sucesivamente hasta llegar a:

Código:
3+4+4+39+39+39=128


No obstante, ese no el único tope. Esta situación también es válida:

Código:
22+22+22+22+22+18=128


La cuestión es encontrar la lógica de como hacerlos variar para que nunca se supere la suma de 128. Una hoja de cálculo te podría ayudar a encontrar la respuesta, es decir, esa lógica.
_________________
"Agua que no has de beber déjala correr"
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes anteriores:   
Publicar nuevo tema  Responder al tema  Foros de discusión -> Programación Todas las horas son GMT - 6 Horas

Página 1 de 1



No puedes publicar nuevos temas en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en encuestas en este foro



Powered by phpBB © 2001 phpBB Group
phpBB port v2.1 based on Tom Nitzschner's phpbb2.0.6 upgraded to phpBB 2.0.4 standalone was developed and tested by:
ArtificialIntel, ChatServ, mikem,
sixonetonoffun and Paul Laudanski (aka Zhen-Xjell).

Version 2.1 by Nuke Cops © 2003 http://www.nukecops.com

Forums ©
 

Copyright | Términos de uso | Política de privacidad | Publicidad | Contáctanos | Blog