elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 10:19  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Reto/Juego Ejercicios en Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: Reto/Juego Ejercicios en Python  (Leído 9,120 veces)
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Reto/Juego Ejercicios en Python
« en: 2 Septiembre 2010, 15:48 »

Buenas ...
Revivamos esto, si funciona funciona, y sino lo dejamos tirado como siempre :xD

El tema consiste en que alguien publica un "reto", y el siguiente que lo conteste y una vez dado el visto bueno a su código, publica el siguiente, digamos que ya hay varios post como este así que no tiene nada de raro. Lo único que si es obligatorio es que quién publica el reto luego tiene que publicar su solución también, así evitamos caer en códigos que ni el que lo propone lo hace :xD

La idea del post va por el lado de crear un algoritmo para tal o cual cosa, como por ejemplo el imprimir todos los primos mayores que y menores que, y no por proponer por ejemplo el crear un juego de tres en raya para jugar en remoto (eso se hizo en el anterior)

Por útimo, decir que no es necesario el uso de try y exception para los input de usuario, se asume que el usuario ingresa un valor válido para la operación, excepto que se pida explicitamente.

A continuación el primer "ejercicio" cortito (como ejercicio y como ejemplo):
"Crear un script que dado dos números a y b, indique si la factorización de a se realiza en más de b factores. (o igual)"
Ej:

Código:
a = 130
b = 5
Factorizacion = 2 x 5 x 13
Resultado = False
-----------------
a = 130
b = 3
Factorizacion = 2 x 5 x 13
Resultado = True
A ver si alguien se anota :P

Saludos

P.D: si nadie responde en tres días, desaparezco el post xD


« Última modificación: 3 Septiembre 2010, 00:03 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

criskapunk

Desconectado Desconectado

Mensajes: 255



Ver Perfil
Re: Reto/Juego Ejercicios en Python
« Respuesta #1 en: 2 Septiembre 2010, 16:18 »

Buenas,

Una pequeña duda que me surgio :xD

Si por ejemplo tengo a=160 y b=3. Los factores serian 2-2-2-2-2-5.

El programa deberia devolver False (Considerando 2**5 y 5) o True (Considerando 2-2-2-2-2-5)?

Un saludo ;)



En línea
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Reto/Juego Ejercicios en Python
« Respuesta #2 en: 2 Septiembre 2010, 16:19 »

Buena pregunta, lo dejamos en True para hacerlo más sencillo, así no es necesario agrupar los factores :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Reto/Juego Ejercicios en Python
« Respuesta #3 en: 2 Septiembre 2010, 23:42 »

Código
from math import sqrt
 
a=int(raw_input("Introduzca el numero: "))
b=int(raw_input("Introduzca la mayor cantidad de factores: "))
factores=set()
res=set()
 
for i in range(2,int(sqrt(a))+1):
if i not in res:
for j in range(i,a/i+1):
res.add(i*j)
 
for i in range(2,a):
if i not in res:
 
while a%i==0:
a=a/i
if i not in factores: factores.add(i)
 
if b>=len(factores): print "Verdadero"
else: print "Falso"
« Última modificación: 3 Septiembre 2010, 03:31 por Lord R.N.A. » En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Reto/Juego Ejercicios en Python
« Respuesta #4 en: 3 Septiembre 2010, 00:01 »

Dejo la solución que tenía :P
Código
def p(n):
   for i in range(2,n):
       if(n%i==0):
           return False
   return True
 
n=int(input('Numero: '))
m=int(input('Cantidad de factores: '))
i,c=2,0
while i<=n:
   if p(i) and n%i==0:
       n/=i
       c+=1
   else:
       i+=1
if c>=m:
print(True)
else:
print(False)

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Reto/Juego Ejercicios en Python
« Respuesta #5 en: 3 Septiembre 2010, 00:10 »

Un bloque de masa M, inicialmente en reposo, se jala hacia la derecha a lo largo de una superficie horizontal mediante una fuerza horizontal constante F. Este se mueve una distancia(metros) D sobre una superficie con un coeficiente de friccion N. El resultado debe de ser la velocidad final del bloque exactamente al recorrer esa distancia.

Código:
Entradas:

Masa = 6.0
Fuerza = 12.0
Distancia = 3.0
Friccion = 0.15

El resultado por pantalla sera:

Velocidad Final del Bloque 1.8 m/s.
« Última modificación: 3 Septiembre 2010, 03:55 por Lord R.N.A. » En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Reto/Juego Ejercicios en Python
« Respuesta #6 en: 3 Septiembre 2010, 05:04 »

asi Novlucker no me asesina:

Código
from math import sqrt
M=float(raw_input("Ingrese la Masa: "))
D=float(raw_input("Ingrese la Distancia: "))
F=float(raw_input("Ingrese la Fuerza: "))
N=float(raw_input("Ingrese la Coeficiente de Friccion: "))
 
if F<(N*M*9.8):print "La velocidad en " + str(D) + " es 0.0m/s"
else:print "La velocidad a los " +str(D) + "Mts. es " + str(round(sqrt(((2*D)/M)*(F-(N*M*9.8))),1)) + "m/s"
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Reto/Juego Ejercicios en Python
« Respuesta #7 en: 3 Septiembre 2010, 05:11 »

El Nuevo reto sera... Dado dos valores A y B, localizar todos los numero primos entre ese intervalo, incluyendolos.

Código:
Valores de entrada
 
Primer numero: 6
Segundo Numero: 17

Valor de salida

7
11
13
17
En línea

Littlehorse
All the world's a stage
Colaborador
***
Desconectado Desconectado

Mensajes: 2.710


Nie Dam Sie


Ver Perfil WWW
Re: Reto/Juego Ejercicios en Python
« Respuesta #8 en: 4 Septiembre 2010, 22:17 »

Código
from math import sqrt
 
def isprime(num):
   if num <2:
     return False
   i=2
   while i <=sqrt(abs(num)):
     if num%i == 0:
        return False
     i+=1
   return True
 
min=int(raw_input("Min:  "))
max=int(raw_input("Max: "))
 
for num in range(min,max+1):
  if isprime(num):
     print num

No lo probé todavía pero debería funcionar si no exageran con el rango  ;D. Se podría hacer una implementación por probabilidades pero igualmente por lo menos para mi no lo vale.   :D

Voy a tomarme la libertad de poner dos retos, uno fácil y otro no tanto, así vemos si se suma mas gente.

El único reto que hay que completar para elegir el próximo reto es el fácil, pero por supuesto el de dificultad media lo pongo para quien quiera hacerlo.  :D

Reto fácil:

Desarrollar una función que permita insertar en una secuencia de dígitos los caracteres guión
cada 8 dígitos a partir del cuarto dígito, y un espacio cada 8 dígitos a partir del octavo dígito.
Si la cantidad de dígitos no fuera múltiplo de 8 se deberá adicionar ceros por la izquierda.
Ejemplo: 

472348237388539055823012 queda como 4723-4823 7388-5390 5582-3012.


Reto medio:

Desarrollar una función que permita insertar el nombre de X usuario y devolver cual es su actividad, siempre que sea posible, analizando https://foro.elhacker.net/who.html.

Saludos!  :D
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Reto/Juego Ejercicios en Python
« Respuesta #9 en: 5 Septiembre 2010, 08:19 »

:xD el otro esta muy complicado... y me gusta irme por lo simple

Código
#Funciona correctamente en Python 2.7
cadena = raw_input("Inserte la secuencia de numeros: ")
 
if cadena.isdigit():
while len(cadena)%8!=0:cadena="0"+cadena
 
s=list(cadena)
for n in range(((len(cadena)/4)-1),0,-1):
if n%2!=0:list.insert(s,n*4,"-")
else:list.insert(s,n*4,".")
 
s = str(s)
s = s.translate(None,"[],' ")
print s.replace("."," ")


RETO: Un Empresario ha realizado una reunion para recortar gastos en la empresa, por lo tanto ha tomado la decision de despedir los empleados con menor taza de exito, a los empleados se les tomara en cuenta 3 factores... Ganancia Generadas, Horas de Trabajo Diario y Sueldo, en base a esto el Empresario a decidido que despedira a los empleados que sean menos efectivos que otro. El Empresario medira esto de la siguiente manera: Si un empleado A Genera mas ganancia, trabaja mas tiempo diario  y tiene un menor sueldo que un empleado B, el empleado B sera despedido.

*Reglas:
-> La cantidad de empleados sera entre 1 y 1,000
->Las Ganancias no sobrepasaran 1,000,000.
->Las horas diarias trabajadas no sobrepasaran las 24 horas.
->El sueldo no sera menor o igual a 0 ni mayor a 1,000,000.
->Solo se permitiran numeros enteros.

=>Valores de entrada, cantidad de empleados, luego cada valor (Ganancia, Horas de Trabajo, Sueldo), separadas por 1 espacio.
=>Valor de Salida, la cantidad de empleados despedidos.

Ejemplo:
Código:
Cantidad de Empleados: 5
Empleado 1: 500 12 300
Empleado 2: 400 14 400
Empleado 3: 100 10 500 #Este sera Despedido.
Empleado 4: 450 11 1000000 #Este sera despedido 4vs1
Empleado 5: 50 1 10000 #Este tambien sera Despedido.

Cantidad de Empleados Despedidos: 2


Edito: No me habia fijado que era multiple de 8... lo lei una vez y me fui a codearlo... ya esta solucionado.
« Última modificación: 6 Septiembre 2010, 18:03 por Lord R.N.A. » En línea

Littlehorse
All the world's a stage
Colaborador
***
Desconectado Desconectado

Mensajes: 2.710


Nie Dam Sie


Ver Perfil WWW
Re: Reto/Juego Ejercicios en Python
« Respuesta #10 en: 5 Septiembre 2010, 08:42 »

R.N.A esta mal el código, agregas la cantidad de ceros incorrectos y por el lado incorrecto. Hasta que sea múltiplo de 8 y por la izquierda!

Igualmente deja tu reto que esta interesante así lo vamos haciendo mientras corriges el anterior.
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Reto/Juego Ejercicios en Python
« Respuesta #11 en: 6 Septiembre 2010, 19:00 »

Lo hice de la manera difícil, pero eficiente :D

Código
n = int(input('Ingresa numero de empleados: '))
l = []
for i in range(n):
   t = input('Empleado '+str(i+1)+' :').split(' ')
   l.append([int(t[0]),int(t[1]),int(t[2])])
i,c = 0,0
while i<len(l)-1:
   e = i
   while e<len(l):
       if l[e][0]>l[i][0] and l[e][1]>l[i][1] and l[e][2]<l[i][2]:
           l.pop(i)
           i += -1
           c += 1
           break
       elif l[i][0]>l[e][0] and l[i][1]>l[e][1] and l[i][2]<l[e][2]:
           l.pop(e)
           e += -1
           c += 1
       e += 1
   i += 1
 
print('Cantidad de Empleados Despedidos: '+ str(c))

El reto será:
Crear un script que reciba un número como parámetro y muestre su factorización, tomando en cuenta además, que los factores repetidos deben de ser mostrados como potencia.
Ejemplo:
Código:
Numero: 432
Resultado: 2^4 x 3^3
Numero: 168
Resultado: 2^3 x 3 x 7

Y el reto "plus" para quienes quieran hacerlo será:
Crea un script que reciba un directorio (no es necesario recorrer subdirectorios) como parametro, calcule hash para los archivos dentro del mismo, y consulte virustotal en busca de un análisis previo. Se deberá de mostrar fecha y número total de AV que lo detectan, o un mensaje en caso de no haber un análisis.

:http://www.virustotal.com/advanced.html#publicapi

Saludos
« Última modificación: 7 Septiembre 2010, 02:59 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Reto/Juego Ejercicios en Python
« Respuesta #12 en: 6 Septiembre 2010, 20:48 »

Código
from math import sqrt
lista = []
e=0
a=int(raw_input("Introduzca el numero: "))
res=set()
 
if a>1:
for i in range(2,int(sqrt(a))+1):
if i not in res:
for j in range(i,a/i+1):
res.add(i*j)
for i in range(2,a+1):
if i not in res:
if not a%i:
lista.append([i,0])
e+=1
while a%i==0:
lista[e-1][1]+=1
a/=i
s=""
for i in range(0,len(lista)):
if lista[i][1]<2:
s += str(lista[i][0])
else:
s += str(lista[i][0])+"^"+str(lista[i][1])
if i<len(lista)-1:
s+=" x "
else: s=a
print s

Reto: Dado un punto en un plano tridimensional y una cantidad N de puntos en el plano, organizar los puntos con respecto a su cercania con el punto dado.Nota: La salida sera representada con un numero de orden con respecto a cercania y las coordenadas del punto en el plano.

Nota: Los valores de los puntos seran introducidos como tuplas
Código:
---Valores de entrada---
Cantidad de puntos: 3
Coordenadas del Punto Central: (3,-1,0)
Coordenadas del Punto(1): (4,2,4)
Coordenadas del Punto(2): (3,4,1)
Coordenadas del Punto(3): (0,5,2)

---Valor de Salida---
1) (3,4,1)
2) (4,2,4)
3) (0,5,2)
« Última modificación: 6 Septiembre 2010, 22:22 por Lord R.N.A. » En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Reto/Juego Ejercicios en Python
« Respuesta #13 en: 7 Septiembre 2010, 15:18 »

Sobre el reto 2 que había dejado Littlehorse, el de who, lo había empezado pero me da pereza seguir parseando el html a mano, así que dejo el desastre que llevaba :xD

Código
import urllib.request
 
userid = 'u'+input('Ingresa id de perfil: ')
whocont = ''
start = 0
while whocont.find('Visitante') == -1:
   whocont = str(urllib.request.urlopen('http://foro.elhacker.net/who.html;start='+str(start)+';sort=user').read())
   whousrs = whocont.split('/profiles/')
   for user in whousrs:
       if user.find(userid) != -1:
           username = user[user.find('>')+1:user.find('</')]
           sts = user.find('<td>')+4
           status = user[sts:user.find('</td>',sts)]
           print(username + ' - ' + status)
           break
   start+=15

Saludos
« Última modificación: 7 Septiembre 2010, 15:20 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Reto/Juego Ejercicios en Python
« Respuesta #14 en: 7 Septiembre 2010, 19:40 »

Y la solución al reto de Lord R.N.A
Código
import math
 
n = int(input('Ingrese numero de puntos: '))
cp = eval(input('Ingrese coordenadas de punto central: '))
points,a = [],[]
for i in range(n):
   points.append(eval(input('Coordenadas del Punto('+str(i+1)+') :')))
 
c = 0
for i in points:
   point = (cp[0]-i[0],cp[1]-i[1],cp[2]-i[2])
   d = math.sqrt(point[0]**2+point[1]**2+point[2]**2)
   a.append([c,d])
   c+=1
 
a.sort(key=lambda i: i[1])
for i in a:
   print(points[i[0]])

Pensando en un reto :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Páginas: [1] 2 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] Sockets en Python [+Ejemplos y Ejercicios]
Scripting
Erik# 3 5,873 Último mensaje 18 Febrero 2009, 22:49
por Erik#
Juego ejercicios [Python] « 1 2 ... 10 11 »
Ejercicios
Masita 150 30,526 Último mensaje 30 Mayo 2011, 20:44
por caro.bello
Ejercicios Python! [Nivel:Principiante]
Ejercicios
kyps 6 7,742 Último mensaje 8 Abril 2010, 19:46
por xyz0k
Nevos Ejercicios En C# Reto!!!!
Ejercicios
Luiskalos 2 6,317 Último mensaje 7 Enero 2011, 11:28
por Novlucker
ejercicios en python
Scripting
ramontxu 2 501 Último mensaje 15 Diciembre 2011, 21:56
por ramontxu
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines