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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14
61  Programación / Scripting / ¿Como obtener una combinacion mediante su indice? en: 17 Julio 2015, 21:32 pm
Pues me he estancado.

Aunque ya he realizado alguna consulta por la web, no le veo solucion a mi duda. O todavia no tengo los conocimientos para desarrollar el codigo.
Mi duda:

Escogemos 100 numeros del 1 al 100. Y acto seguido pedimos las combinaciones de 5 grupos. Total 75287520 combinaciones. Correcto. Pero,  si por ejemplo, quiero que me de la combinacion con su indice 1000000 me tarda unos 9 segundos a recorrer dichas combinaciones con un ciclo FOR (que tambien probe con un WHILE).

¿Como le puedo pedir a un script que me devuelva de forma inmediata las combinaciones a traves del indice que se le indica? Ya no hablo de arreglos (que se podria hacer para pocos vectores).

La duda me viene por que no se como los programas construyen las combinaciones o el algoritmo que usan.
 
En el ejemplo que detallo, para encontrar la combinacion que se haya en la posicion o indice 1000000 tarda unos 9 segundos ¿Se puede hacer que de forma inmediata nos la de? Con un FOR, creo, desde luego que no. Ya que debe recorrer todas ellas hasta llegar a la posicion 1000000

Código
  1. import itertools
  2. from datetime import datetime
  3.  
  4.  
  5. inicio = datetime.now()
  6. muestra = tuple(range(1, 101))
  7. for indice, x in enumerate(itertools.combinations(muestra, 5),1):
  8.    print(indice, x)
  9.    if indice == 1000000:
  10.        print('La combinacion con indice', indice, 'es', x)
  11.        break
  12.  
  13. final = datetime.now()
  14. tiempo = final - inicio
  15. print(tiempo)

Salida:

Código
  1. ...
  2. 999994 (1, 9, 18, 21, 29)
  3. 999995 (1, 9, 18, 21, 30)
  4. 999996 (1, 9, 18, 21, 31)
  5. 999997 (1, 9, 18, 21, 32)
  6. 999998 (1, 9, 18, 21, 33)
  7. 999999 (1, 9, 18, 21, 34)
  8. 1000000 (1, 9, 18, 21, 35)
  9. La combinacion con indice 1000000 es (1, 9, 18, 21, 35)
  10. 0:00:09.510784
  11.  

Si pedimos un indice mayor o jugamos con otras combinaciones, nos puede arrojar horas, dias o semanas en devolvernos la combinacion con el indice pedido ¿No?

62  Programación / Scripting / Re: [PYTHON] Saber si un elemento esta en una matriz en: 9 Abril 2015, 19:19 pm
¡Muchas gracias! Que simple. Con las vueltas que le dí. Tendré que echar mas de un vistazo a las built-ins. En todo caso me equivoque en esta línea:

Código
  1. num = 4
  2. matriz = [[1,2,3],[4,5,6],[7,8,9]]
  3. num in lista # Aquí debería haber puesto:


Código
  1. num in matriz

Tu línea la he modificado para Python 3:

Código
  1. print (any(value in arr for arr in arr2D))

Por si alguien usa esta versión y le da error. Supongo que otra forma sería definiendo nosotros la función. Como cita en el ejemplo del enlace que has posteado.

¡Saludos!
63  Programación / Scripting / [PYTHON] Saber si un elemento esta en una matriz en: 8 Abril 2015, 19:34 pm
Hola.

Antes de postear he dudado en hacerlo. Porque supongo que la solución será muy fácil. Pero por más que le doy vueltas no doy con la tecla.

Para saber si un elemento esta en una lista o vector, solo hemos de hacer así:

Código
  1. num = 4
  2. lista = [1,2,3,4,5]
  3. num in lista

Y nos devuelve True.

¿Pero como hacerlo 'fácil' si hemos de hacer la comprobación en una matriz?

Código
  1. num = 4
  2. matriz = [[1,2,3],[4,5,6],[7,8,9]]
  3. num in lista

Logicamente nos devolverá False. Ya que comprobará el número 4 con una lista o vector entero.

Hacer esto, no lo veo del todo bien:

Código
  1. num in matriz[0] or num in matriz[1] or num in matriz[2]

Y si usamos un ciclo For, como el número a comprobar esta en matriz[1], nos devolverá False. Ya que la variable de control del For se detendrá en matriz[2]. Y como allí no esta el 4, dará False.

La pregunta, es, ¿Cómo enfocarlo en estos casos?


Bueno, saludos!
64  Programación / Scripting / Re: Aprendiendo Python, algunas dudas. en: 5 Enero 2015, 20:40 pm
Yo te recomiendo este libro sin dudarlo. Ya que trata de algoritmos con Python. Y luego, hacia el final, explican la programación orientada a objetos. También hay un canal muy bueno. Te paso los dos enlaces:

LIBRO:

http://www.etnassoft.com/biblioteca/algoritmos-y-programacion-con-lenguaje-python/

CANAL YOUTUBE:

https://www.youtube.com/playlist?list=PLEtcGQaT56chpYflEjBWRodHJNJN8EKpO

Y enfocado a POO:

https://www.youtube.com/playlist?list=PLEtcGQaT56cj70Vl_C1qfUinyMELunL-N

Espero te sirva!
65  Programación / Scripting / Re: [PYTHON] ¿Se pueden crear árboles de decisión con funciones y condicionales? en: 13 Diciembre 2014, 10:53 am
Dándole vueltas al asunto (e intentando crear esta estructura sin POO) me asaltan nuevas dudas.

De momento quiero crear un árbol simple, osea, binario. Los numerosos ejemplos se basan en la raíz principal y dos nodos izquierdo y derecho. Para estos ejemplos se usan números.
En el nodo principal (padre) se pone un número cualquiera. Y los que se generan después, si son mayor o igual al nodo padre, se sitúan al nodo derecho. Si son menores, al nodo izquierdo. Esto se va repitiendo y creando por los diferentes nodos.

Bien, ¿Pero como se implementa cuando se trata de preguntas y no números? He de suponer que ya no vale el 'mayor o igual que' o 'menor que' ¿Estos operadores se sustituyen en su caso por 'si' y 'no'?

Cuando tenga un primer borrador de código lo posteo. Aunque seguro que me lloverán criticas a diestro y siniestro.
66  Programación / Scripting / Re: [PYTHON] ¿Se pueden crear árboles de decisión con funciones y condicionales? en: 7 Diciembre 2014, 10:51 am
me hace acordar al principio de crear inteligencia artificial, hace un tiempo leí este artículo : http://www.exabyteinformatica.com/uoc/Inteligencia_artificial/Inteligencia_artificial_avanzada/Inteligencia_artificial_avanzada_%28Modulo_1%29.pdf quizá pueda orientarte o yo entendí cualquier cosa de lo que planteaste.
Éxitos.

Gracias por el aporte. Creo que le vi alguna vez por la red. Pero como dice el titulo del libro, es IA avanzada. Y claro, demasiado avanzado para mi.

En todo caso, dejo un enlace de un vídeo, que he visto en Youtube, de mas o menos lo que quiero hacer. Pero en Python.

Es un juego para un ordenador de 8 bits. El mitico Amstrad CPC https://www.youtube.com/watch?v=m0SWW0sR0rI

Creo que para ese tipo de programa se deberá usar árbol de decisión o binario. Y como por aquella época, la programación orientada a objetos no se usaba en estos ordenadores, me gustaría hacer lo mismo pero con la potencia de Python. Sin usar tampoco la POO.


Me queda pilar el concepto de carga izquierda o derecha sin usar la POO. En todos los diagramas de árbol veo esto. Que desde la raíz se separan dos ramas (izq. y der.). La cosa es, que no se como aplicarlo con la programación funcional. O si no es necesario aplicar este concepto en la prog. funcional.

¿Cómo se sustituye este tipo de carga y nodos sin la POO?
67  Programación / Scripting / Re: [PYTHON] ¿Se pueden crear árboles de decisión con funciones y condicionales? en: 6 Diciembre 2014, 18:03 pm
Ok. Supongo que en ese caso, debería usar listas o diccionarios ¿No es así?

Y luego quedaría el asunto de como guardar los datos introducidos cuando cerrásemos el programa. Osea, que deberíamos ir escribiendo en un archivo todas las respuestas que fuéramos dando. Y cuando lo volviésemos a ejecutar, leyera el archivo y así poder continuar. No empezar de cero. De ese modo, cuando otra persona probara el programa, ya tendría una base de respuestas y animales considerable.

68  Programación / Scripting / [PYTHON] ¿Se pueden crear árboles de decisión con funciones y condicionales? en: 6 Diciembre 2014, 14:13 pm
Seguramente se podrá hacer. Pero la mayoría de ejemplos que veo por la red, utilizan el paradigma de POO. Y antes de llegar a dicho paradigma de programación utilizo la funcional.

Se trataría de crear un árbol de decisión o alguno mas simple (por ejemplo árbol binario). Y además, que los datos que se fueran introduciendo se pudieran escribir y leer de un archivo. Es decir, para que nuestro código fuera aprendiendo.

¿Cómo se debería enfocar?

Esta el típico programa que hace de adivinador. Y que a medida que uno le introduce datos, estos se escriben en un archivo para luego no tener que teclearlos de nuevo.

En este enlace https://gist.github.com/adrigm/5330110 el usuario postea un código usando la POO. Me gustaría poder aprender como se haría igual usando IF, funciones, FOR, etc...

Por cierto, no es un trabajo que me hayan mandado hacer. Aprendo los ratos que puedo y por hobby. Gracias!
69  Programación / Scripting / Re: ¿Cómo crear una aventura conversacional? [PYTHON] en: 3 Noviembre 2014, 21:21 pm
Por fin he encontrado la ayuda que pedía. Y sin utilizar la POO (Ya lo haré mas adelante). Es para familiarizarme con bucles, funciones, excepciones y eso. Y no recurrir a los típicos programas de ecuaciones y derivadas.

http://pythonwiki.wikispaces.com/file/view/Python+(Pr%C3%A1ctica+5).pdf

70  Programación / Scripting / ¿Cómo crear una aventura conversacional? [PYTHON] en: 26 Octubre 2014, 14:19 pm
Hola...

Con el fin de entrenarme un poco con python, me gustaría crear un pequeña aventura conversacional. Es decir, la típica aventura de texto donde damos ordenes por teclado y el personaje se va moviendo por habitaciones (o lugares). Y aparte, que cuente con un inventario y tal. Me gustaría que de momento fuera solo con programación funcional. Es decir, con la ayuda de funciones internas de Python, las nuestras definidas por nosotros y algún módulo. Eso sí, sin tocar la POO para no liarme en exceso.

Con este tipo de programa/juego se pueden asentar las bases sobre vectores, ciclos, matrices, inteligencia artificial, excepciones, ficheros, etc...

He mirado un poco por internet, pero no hay gran cosa ¿Sabéis algo parecido (un tuto) en la lengua de Cervantes?

En todo caso ¿Cómo se debería plantear? Uso de matrices y árboles de decisión, supongo...

Bueno, espero alguna idea...saludos!
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines