Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-10-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
¿Y qué tal probando con todas las combinaciones posibles?

Primero, con un método que te las genere todas, y después otro que las compruebe (realice las operaciones). En fin, esto ya parece más sencillo. Para generar las combinaciones, bucles for dentro de bucles for dentro de bucles for..... ¡que me buclo!. Y después, guardadas todas las posibilidades en un TStringList o similar, pues un método que recorra todos los items, y que realice las operaciones.

Saludos

P.D.: Si eso, intento hacerlo, y si lo logro, pues cuelgo el código.

P.P.D.: ¿y si lo hacemos más interesante?.... ¡El último que lo logre es un programador en.... (¿es aquí donde hay que decir VB?)!
Responder Con Cita
  #2  
Antiguo 29-10-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Bueno, ya tengo la primera parte, que es generar todas las combinaciones. En total salen 40.000, claro que, como contaba con la posibilidad de no necesitar todos los números, añado a la lista de números el cero, por lo que sale alguna que otra posibilidad absurda, como dividir entre cero (más de una vez). El hecho de que salga el cero una suma o una resta indica que (si al final el resultado de la operación es el buscado) no se ha utilizado todos los números para hacer el cálculo.

Colocad 4 edits (donde se pondrán los números), un botón, un memo llamado combinaciones (donde aparecen las combinaciones) y un label (que indicará cuántas combinaciones salen),y colorcar este código en el evento onClick del botón.

Código Delphi [-]

procedure TForm1.Button1Click(Sender: TObject);
const
  opera = '+-*/';
var
  o1,o2,o3,  //distintos operadores
  n1,n2,n3,n4: integer;    //distintos números
  num: array[1..5]of integer;
  comb: string;
begin
combinaciones.clear;
combinaciones.Lines.BeginUpdate;
num[1]:=StrToInt(Edit1.text);
num[2]:=StrToInt(Edit2.text);
num[3]:=StrToInt(Edit3.text);
num[4]:=StrToInt(Edit4.text);
num[5]:=0; //Por si nos sobran números para obtener el resultado
for o1:=1 to 4 do
 for o2:=1 to 4 do
  for o3:=1 to 4 do
   for n1:=1 to 5 do
    for n2:=1 to 5 do
     for n3:=1 to 5 do
      for n4:=1 to 5 do
      begin
       comb:=IntToStr(num[n1])+opera[o1]+
             IntToStr(num[n2])+opera[o2]+
             IntToStr(num[n3])+opera[o3]+IntToStr(num[n4]);
    combinaciones.Lines.Add(comb);
    end;
   combinaciones.Lines.EndUpdate;
   label1.caption:='Combinaciones: '+IntToStr(combinaciones.lines.count);
end;


Ahora ya sólo falta el método que haga esas 40.000 operaciones y que compare el resultado....
Responder Con Cita
  #3  
Antiguo 29-10-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Bueno, mejor visto, creo que se lo voy a dejar a marcoszorrilla, que yo me tengo que hacer la cena y llevo 33 horas sin dormir.

Saludos (a ver si cuando mañana venga a ver el hilo está ya resulto ).
Responder Con Cita
  #4  
Antiguo 29-10-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues yo acabo de cenar y tanta operación me puede ir mal para el estómago, mejor lo dejamos así, a ver si viene un valiente y lo resuelve y mañana por la mañana todo se verá más claro....


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 29-10-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Sí, será lo mejor, porque mientras saboreaba unas deliciosas hamburguesas (de las buenas, no de un fast food) me he dado cuenta de un fallo de mis generador de posibilidades, y es que al mecer ese cero por ahí, puede convertir el producto de tres números en cero. Lo que tenía que haber hecho es colocar el elemento neutro de la operación a realizar (cero para la suma y la resta, uno para el producto y la división).

En fin, pues eso, a ver si algún valiente, de otra franja horaria, se anima y tal... (que yo mañana tengo clases a las ocho).


Hasta mañana (y que mola eso de meter tanto bucle for).
Responder Con Cita
  #6  
Antiguo 30-10-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Cita:
Empezado por marcoszorrilla Ver Mensaje
Pues yo acabo de cenar y tanta operación me puede ir mal para el estómago, mejor lo dejamos así, a ver si viene un valiente y lo resuelve y mañana por la mañana todo se verá más claro....


Un Saludo.
Pues a mi ya me hizo daño Me provocó dolores intestinales...
¿Valiente? La verdad es que hay que tener ganas de hacer algo como eso.
Estuve pensando un poco... puede que sea posible... si puedo y me sale el algoritmo lo posteo.

Cita:
Empezado por ixMike Ver Mensaje
Bueno, mejor visto, creo que se lo voy a dejar a marcoszorrilla, que yo me tengo que hacer la cena y llevo 33 horas sin dormir.

Saludos (a ver si cuando mañana venga a ver el hilo está ya resulto ).
Vale... a ver... quien lo resuelva se gana una cita con una de las damas invitadas a la despedida de soltero de Eduarcol (si con eso no aumentan la productividad no sabría que cosa lo puede hacer)

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 30-10-2007
Avatar de ZayDun
ZayDun ZayDun is offline
Miembro
 
Registrado: mar 2007
Posts: 129
Poder: 20
ZayDun Va por buen camino
Una vez mas gracias por molestaros en averiguar la forma de hacerlo y pedir perdon por ocasionar problemas de dolor intestinal a usuarios del foro...supongo que Clubdelphi tendra seguro medico no? xD. Suerte a los valientes que decidan continuar
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Algoritmo de Encriptacion DarkByte Varios 22 08-10-2014 19:54:41
Algoritmo!!! Ledian_Fdez C++ Builder 7 18-06-2007 22:17:50
Rechaza matematico ruso presea egostar Noticias 2 24-08-2006 12:19:11
Algoritmo MD5 tbolzan Varios 1 19-10-2004 15:13:47
Problema matemático __cadetill Humor 11 31-10-2003 12:20:57


La franja horaria es GMT +2. Ahora son las 21:55:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi