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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿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 3,364 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.173


Superhacker (es broma xD )


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

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.590


Shrödingerificado


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

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: 1.173


Superhacker (es broma xD )


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

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



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

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.286

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 pm »

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
Ucrania gana la Imagine Cup con un guante que traduce la lengua de signos en ...
Noticias
wolfbcn 0 1,162 Último mensaje 11 Julio 2012, 01:09 am
por wolfbcn
Google Translate ya traduce imágenes y conversaciones en tiempo real
Noticias
wolfbcn 0 3,621 Último mensaje 14 Enero 2015, 15:09 pm
por wolfbcn
¿Porque España traduce tan mal los nombres de peliculas, personajes, etc? « 1 2 3 »
Foro Libre
SmallHands 25 8,757 Último mensaje 10 Noviembre 2015, 10:24 am
por Orubatosu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines