Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Tachikomaia en 30 Diciembre 2024, 06:30 am



Título: Generar funciones.
Publicado por: Tachikomaia en 30 Diciembre 2024, 06:30 am
Al parecer todas las dudas relacionadas con quitar caracteres requieren 3 variables mínimo, yo quería sólo 2, así que voy a por operaciones comúnes donde parece que sí pueden ser 2.

El programa intentaría resolver una duda variable, algo así:
Definir Constante.
Seleccionar al azar cómo se aplicará el Candidato.
Definirlo.
Aplicarlo.
Variarlo hasa que Constante < Resultado.

Quiero ayuda con lo de seleccionar. El paso de aplicar el candidato sería llamar a una función especificada por el paso de seleccionar. Seleccionarla es fácil. Llamar a una función variable no es el problema. Es que son muchas posibles aplicaciones, o funciones, por ejemplo:
Aplicacion0 () {
   Resultado = Candidato;
}
Aplicacion1 () {
   Resultado = Candidato+Constante;
}
Aplicacion2 () {
   Resultado = Candidato+Candidato;
}
Aplicacion3 () {
   Resultado = Candidato-Constante;
}
etc

O sea, el programa intentaría resolver una duda al azar, dependiendo de qué función elija al principio, por ejemplo si elige la 2 es:
¿Qué valor conviene darle a Candidato para que Constante < Candidato+Candidato?
Pero la condición en el código sería Constante < Resultado, en eso se guardaría el resultado de las operaciones que hagan falta.

Así pues, necesito generar una lista de funciones o aplicaciones. En la definición de Resultado pueden usarse sólo las 2 variables mencionadas. Y operaciones matemáticas comúnes. Y paréntesis. 3 operaciones máximo.

Bueno, supongo que es algo como:
Aplicacion = 0
Repetir:
   Mostrar en pantalla "Aplicacion"+Aplicacion+" () {"+salto de línea+"   Resultado = "
...es decir, falta una parte, que no sé, pero la idea es que un programa genere esas funciones, las muestre, yo las copio y las pego en el programa que quiero hacer, o sea, el generador es como un subprograma, un medio.

Hay que variar lo que viene luego de "= ".

¿Ideas?

No tengo puntos para GPTear, cuando pueda lo hago.


Título: Re: Generar funciones.
Publicado por: blckkey en 6 Enero 2025, 01:39 am
Esto suena a que quieres un generador de funciones que te escupa combinaciones básicas con dos variables. Algo así no es complicado. Te dejo una plantilla rápida en Python para que lo modifiques como quieras:

Código:
import random

operaciones = [
    "Candidato + Constante",
    "Candidato - Constante",
    "Candidato * Constante",
    "Candidato / Constante",
    "Candidato % Constante",
    "Candidato ** Constante"
]

def generar_funciones(n):
    for i in range(n):
        op = random.choice(operaciones)
        print(f"def Aplicacion{i}():")
        print(f"    Resultado = {op}")
        print(f"    return Resultado\n")

# Genera 5 funciones al azar
generar_funciones(5)

Con eso generas las combinaciones que buscas. Después solo las copias y pegas en tu código principal. Si quieres ajustar las condiciones o meter más operaciones, solo añade en la lista.

No necesitas magia para esto, pero si lo complicas demasiado terminas escribiendo un compilador en vez de un programa.