elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderador: Eleкtro)
| | |-+  ¿Alguien me traduce este cíodigo de Phython 3.5?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Alguien me traduce este cíodigo de Phython 3.5?  (Leído 563 veces)
Tachikomaia

Desconectado Desconectado

Mensajes: 5


Ver Perfil
¿Alguien me traduce este cíodigo de Phython 3.5?
« en: 9 Junio 2018, 00:20 »

Código:
resolve = lambda a, b: [(a[0], b[1])] if a[1] == b[0] else []
 
def isconsistent(inequations):
  pending = inequations[:]
  done = []
  hashes = set()
  while pending:
    c = pending.pop()
    if c[0] == c[1]:
      return False
    for i in done:
      n = resolve(c, i) + resolve(i, c)
      for e in n:
        h = "%s<%s"%e
        if h in hashes:
          continue
        hashes.add(h)
        pending.append(e)
    done.append(c)
  return True
 
print(isconsistent([("A", "B"), ("B", "C"), ("C", "D")]))
print(isconsistent([("A", "B"), ("B", "C"), ("C", "A")]))

Gracias.


En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.579


Shrödingerificado


Ver Perfil
Re: ¿Alguien me traduce este cíodigo de Phython 3.5?
« Respuesta #1 en: 10 Junio 2018, 16:33 »

Yo empezaría por ver qué nos da Google translate, a ver si ayuda, así:

Código:
resolve = lambda a, b: [(a [0], b [1])] si a [1] == b [0] else []
 
def isconsistent (inecuaciones):
   pendiente = inecuaciones [:]
   hecho = []
   hashes = set ()
   mientras está pendiente:
     c = pending.pop ()
     si c [0] == c [1]:
       falso retorno
     para mí en hecho:
       n = resolver (c, i) + resolver (i, c)
       para e en n:
         h = "% s <% s"% e
         si h en hash:
           continuar
         hashes.add (h)
         pending.append (e)
     done.append (c)
   devolver verdadero
 
print (isconsistente ([("A", "B"), ("B", "C"), ("C", "D")]))
print (isconsistente ([("A", "B"), ("B", "C"), ("C", "A")]))


En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Tachikomaia

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: ¿Alguien me traduce este cíodigo de Phython 3.5?
« Respuesta #2 en: 13 Junio 2018, 04:08 »

Te explico.

No soy de leer o hacer cursos, soy mas bien de pensar e intentar hacer cosas pidiendo ayuda, o sea que no conozco mucho los tecnicismos y no me interesan.

Leí un manual para principiantes, de BASIC, hice un curso de Clipper, y desde entonces hago cosas con MACROMEDIA Flash 5 porque no he visto otro IDE/lenguaje que me gustara más. Su lenguaje es Action Script 1.0 digamos (dije "digamos" porque no sé si en aquella época le ponían un número a la versión),

Es muy similar a BASIC, pero hay "clips de película" con propiedades como su posición en la pantalla, que puedes cambiar con una línea de código. Nada que ver con Clipper donde sólo podías pintar la pantalla usando ciertos rectángulos con puntitos y si querías mover un dibujo hecho de ellos tenías que borrarlos y crearlos en otro lugar, cosa que requería muchas líneas de código. En BASIC creo que se podían crear circulos y cosas por el estilo pero nunca usé tanto eso y creo que no podías moverlo, tenías que borrarlo y redibujarlo.

El punto es que veo por ejemplo
Código:
resolve = lambda a, b: [(a [0], b [1])] si a [1] == b [0] else []
y más allá de alguna condición que están diciendo ahí, no entiendo una m*****, nunca vi algo así.

¿Están creando una variable?

¿Qué es lambda? Me da asco porque no suena a nada salvo a lambida. Lo acabo de buscar:
https://es.wikipedia.org/wiki/Expresi%C3%B3n_lambda
Lo más parecido que he visto es "function", pero rara vez le pongo parámetros a las que creo, y jamás he visto que se le pongan condiciones o lo que sea que le han puesto.

El código en cuestión me lo han dado como respuesta a algo que pedí, más o menos así:
"Quisiera hacer un programa que genere X sentencias condicionales entre Y variables, de modo que no se contradigan".
Por ejemplo si las variables son A, B, C y D, el programa podría generar A<B, B<C, A<C y así sucesivamente, no pretendo que evite redundancias (en el ejemplo, A<C lo es), pero contradicciones sí: Si generó A<B no quiero que genere A==B, por ejemplo.

Bueno, comienza con una función que parece al p***, porque si pregunto cómo hacer una pizza por ejemplo no pones al inicio "receta para hacer pizza, sartén (vacía), tomates(en la mesa)" o vaya a saber qué cosas, me dices los pasos a seguir y listo.

Código:
def isconsistent(inequations):
¿Qué es esto? ¿están definiendo una variable? Pero de valor le están poniendo algo que no han definido aún.

Código:
pending = inequations[:]
Siguen definiendo cosas con algo que aún no definieron.
Esto "[:]" no sé qué es, imagino que marca el tipo de variable (en AS nunca hago eso, se define automáticamente basado en el valor que le ponga), pero está claro que no sé cual es, y menos si no han definido qué es "inequations".
¿Acaso todo este código es para usar una vez que se haya definido eso? Entonces me dieron algo bastante distinto de lo que pedí porque yo no tengo una variable llamada inequations. A lo mejor es que una vez generadas las sentencias condicionales (les había llamado inecuaciones, ahora que recuerdo), esta función analizaría si contradice a las demás, inecuaciones iría variando...

En fin, quiero el pseudocódigo.
En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 13.927



Ver Perfil
Re: ¿Alguien me traduce este cíodigo de Phython 3.5?
« Respuesta #3 en: 13 Junio 2018, 04:48 »

el lambda si es más complicado, pero es lo que usualmente le llaman  "funciones anonimas" solo que con capacidades extras... sobre el def con el parámetro, te tocará estudiar algoritmia básica ya que eso es material inicial sobre funciones y estructuras de control

Código:
funcion(parametros)

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
tincopasan


Desconectado Desconectado

Mensajes: 1.045


No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: ¿Alguien me traduce este cíodigo de Phython 3.5?
« Respuesta #4 en: 13 Junio 2018, 18:13 »

Citar
¿Qué es lambda? Me da asco porque no suena a nada salvo a lambida.

ya que te da asco y sabes que necesitas, ¿por qué no lo haces directamente en tu lenguaje favorito, sin recurrir a un código ya hecho?
que fácil criticar lo que no se entiende. 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Traduce con, Windows Live Translator
Noticias
YaTaMaS 0 408 Último mensaje 14 Septiembre 2007, 17:57
por YaTaMaS
¿Como se traduce esto a partituras?
Foro Libre
programatrix 2 737 Último mensaje 22 Enero 2008, 01:33
por AndserK
Al Qaeda traduce al castellano textos de su mayor página web
Noticias
wolfbcn 0 411 Último mensaje 20 Julio 2008, 02:58
por wolfbcn
Microsoft traduce los nombres de sus productos al español
Noticias
wolfbcn 4 1,036 Último mensaje 28 Diciembre 2009, 13:28
por Randomize
¿Quién traduce mejor?
Noticias
wolfbcn 9 1,034 Último mensaje 15 Marzo 2010, 00:35
por ^Winder^
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines