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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


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

Mensajes: 10.683

Yo que tu lo pienso dos veces


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

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 am por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
criskapunk

Desconectado Desconectado

Mensajes: 277



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

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
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


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

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
"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.513

El Dictador y Verdugo de H-Sec


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

Código
  1. from math import sqrt
  2.  
  3. a=int(raw_input("Introduzca el numero: "))
  4. b=int(raw_input("Introduzca la mayor cantidad de factores: "))
  5. factores=set()
  6. res=set()
  7.  
  8. for i in range(2,int(sqrt(a))+1):
  9. if i not in res:
  10. for j in range(i,a/i+1):
  11. res.add(i*j)
  12.  
  13. for i in range(2,a):
  14. if i not in res:
  15.  
  16. while a%i==0:
  17. a=a/i
  18. if i not in factores: factores.add(i)
  19.  
  20. if b>=len(factores): print "Verdadero"
  21. else: print "Falso"
« Última modificación: 3 Septiembre 2010, 03:31 am por Lord R.N.A. » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


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

Dejo la solución que tenía :P
Código
  1. def p(n):
  2.    for i in range(2,n):
  3.        if(n%i==0):
  4.            return False
  5.    return True
  6.  
  7. n=int(input('Numero: '))
  8. m=int(input('Cantidad de factores: '))
  9. i,c=2,0
  10. while i<=n:
  11.    if p(i) and n%i==0:
  12.        n/=i
  13.        c+=1
  14.    else:
  15.        i+=1
  16. if c>=m:
  17. print(True)
  18. else:
  19. print(False)

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"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.513

El Dictador y Verdugo de H-Sec


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

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 am por Lord R.N.A. » En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


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

asi Novlucker no me asesina:

Código
  1. from math import sqrt
  2. M=float(raw_input("Ingrese la Masa: "))
  3. D=float(raw_input("Ingrese la Distancia: "))
  4. F=float(raw_input("Ingrese la Fuerza: "))
  5. N=float(raw_input("Ingrese la Coeficiente de Friccion: "))
  6.  
  7. if F<(N*M*9.8):print "La velocidad en " + str(D) + " es 0.0m/s"
  8. 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.513

El Dictador y Verdugo de H-Sec


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

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


Nie Dam Sie


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

Código
  1. from math import sqrt
  2.  
  3. def isprime(num):
  4.    if num <2:
  5.      return False
  6.    i=2
  7.    while i <=sqrt(abs(num)):
  8.      if num%i == 0:
  9.         return False
  10.      i+=1
  11.    return True
  12.  
  13. min=int(raw_input("Min:  "))
  14. max=int(raw_input("Max: "))
  15.  
  16. for num in range(min,max+1):
  17.   if isprime(num):
  18.      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.513

El Dictador y Verdugo de H-Sec


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

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

Código
  1. #Funciona correctamente en Python 2.7
  2. cadena = raw_input("Inserte la secuencia de numeros: ")
  3.  
  4. if cadena.isdigit():
  5. while len(cadena)%8!=0:cadena="0"+cadena
  6.  
  7. s=list(cadena)
  8. for n in range(((len(cadena)/4)-1),0,-1):
  9. if n%2!=0:list.insert(s,n*4,"-")
  10. else:list.insert(s,n*4,".")
  11.  
  12. s = str(s)
  13. s = s.translate(None,"[],' ")
  14. 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 pm por Lord R.N.A. » En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] Sockets en Python [+Ejemplos y Ejercicios]
Python
Erik# 4 15,195 Último mensaje 4 Abril 2013, 16:43 pm
por SelTzeR
Juego ejercicios [Python] « 1 2 ... 15 16 »
Ejercicios
Masita 150 110,813 Último mensaje 30 Mayo 2011, 20:44 pm
por caro.bello
Ejercicios Python! [Nivel:Principiante]
Ejercicios
kyps 6 21,315 Último mensaje 8 Abril 2010, 19:46 pm
por xyz0k
Nevos Ejercicios En C# Reto!!!!
Ejercicios
Luiskalos 2 11,948 Último mensaje 7 Enero 2011, 11:28 am
por Novlucker
Ayuda ejercicios de python
Python
jasson94 2 3,913 Último mensaje 30 Octubre 2012, 01:39 am
por jasson94
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines