Que ondaaa linces de las praderas, bue les hago una aclaracion antes de que se metan en el post.
SI O SI tienen que conocer sobre programacion para entenderlo. Yo estoy cursando en primer año de ingenieria en sistemas en la UTN Cordoba
Los programas estan hechos en el lenguaje python, asi que tambien tienen que conocer sobre el mismo (igual si ya programaste en java o en c++ python es una estupides) es del unico lenguaje que conozco (recien estoy aprendiendo) y bue... porque no compartir un poco de lo que aprendi con ustedes... les recomiendo que dejen cargar el post porque es largo... pero prueben esto si estan al pedo o si estan en esto de la programacion, a veces hasta vos mismo te podes sorprender con las cosas que vas aprendiendo... ahora empezamooos
Primero lo primero... Cualquier entorno que admita el lenguaje python te sirve, yo use Python 3.4 y el entorno Pycharm (educational o comunity... el que sea) pueden bajarlo de la pagina oficial... ahi esta el link
Ahora empezamos con el primer desafio... Las torres de Hanoi...
Breve introduccion:
Las Torres de Hanói es un rompecabezas o juego matemático inventado en 1883 por el matemático francés Édouard Lucas.Este juego de mesa solitario se trata de un juego de ocho discos de radio creciente que se apilan insertándose en una de las tres estacas de un tablero. El objetivo del juego es crear la pila en otra de las estacas siguiendo ciertas reglas...
1-Sólo se puede mover un disco cada vez.
2-Un disco de mayor tamaño no puede descansar sobre uno más pequeño que él mismo.
3-Sólo puedes desplazar el disco que se encuentre arriba en cada varilla.
Ahora vamos al codigo de fuente....
Donde N es el numero de discos... Se aplica a la recursividad para resolver este problema, ya que el algoritmo es siempre el mismo... mientras mas discos tenga claramente mucho mas largo va a ser. A N siempre se le resta 1 porque el disco que venga tiene que ser de menor tamaño y cuando este llegue a 0 el algoritmo termina... Intenten hacer este problema es muuy interesante
y van a estar bastante tiempo resolviendolo y cuando lo terminen vienen y me cuentan
La sucesion 3n + 1 o sucecion de Collatz
Breve introduccion:
Se parte de un número entero positivo n y se aplica en forma sucesiva la siguiente relación numérica hasta llegar eventualmente al valor 1.
En este se observa:
La orbita (valores calculados del numero) y la longitud de la orbita (cantidad de valores incluyendo el 1), tambien se puede sacar el promedio de la orbita.
Desarrollo:
A este problema si lo hice

de hecho fue un trabajo que me dieron en la facu (obvio que saque 10 papaa) Me pedian el promedio , la longitud de orbita y el mayor de los numeros en orbita de ciertos numeros.
Hay 2 formas de encararlo la recursiva (un quilombo) y la iterativa (que parece ser mas facil) yo hice la recursiva jaja (queria pensarla un poco) para sacar la longitud y el promedio, para sacar el mayor use un ciclo while (que hice en un modulo aparte), Les dejo el desarrollo para que lo vean e intenten hacerlo de otra forma (hay monton de formas de hacerlo, esta es una)
El archivo constara de 3 modulos:
1- Susecion (calculo de la orbita y promedio)
2- may_collatz (calculo del mayor)
3- Collatz (interfaz de usuario)
Lo primero es la creacion del modulo susecion en donde se calcula la orbita, la suma de los valores de la orbita y el promedio.
(ignoren la advertencia del pep 8
)
val es la variable que uso para que se guarde el valor de orbita y sum para que se vayan sumando (me complique muchisimo para hacerlo repito con contadores y de forma iterativa es mucho mas facil)
2- Ahora procedemos al calculo del mayor numero de la orbita (lo hice con un ciclo while en el modulo may_collatz)
El clasico calculo de mayor, apenas empieza el cliclo el mayor empieza siendo el mismo numero y luego se aplica la sucesion, finalmente se pregunta si el nuevo numero n es mayor al que esta guardado en may... si es asi ese n es el nuevo mayor.
3- El ultimo modulo es el modulo Collatz (el principal) donde se muestra la interfaz de usuario y se importan los 2 modulos anteriores invocando las funciones.
Aclaracion: Al ultimo siempre se pregunta (si tenes mas de un modulo) si la variable __name__ (el nombre del modulo seria) es la principal, si es asi que se lanze la funcion test. Lo que haces ahi es declarar ese modulo como el principal y si es asi se va a ejecutar todo lo que haya en este, tengan cuidado y hagan esto siempre cosa de evitar la ambiguedad en el lenguaje, dicho de otra forma que no se te haga un quilombo barbaro...
Funcion de Ackerman
Breve introduccion...
La función de Ackermann es una función matemática recursiva encontrada en 1926 por Wilhelm Ackermann, tiene un crecimiento extremadamente rápido, de interés para la ciencia computacional teórica y la teoría de la computabilidad. Hoy en día, hay una serie de funciones que son llamadas funciones Ackermann. Todas ellas tienen una forma similar a la ley original la función de Ackermann y también tienen un comportamiento de crecimiento similar. Esta función toma dos números naturales como argumentos y devuelve un único número natural.
Desarrollo... (Esta comentado y todo
) a este lo hice recientemente por eso esta mas prolijo que el anterior
1- Creacion del modulo recursion (que contiene la funcion ackerman)
2- Creacion del modulo test01 para la vizualizar
introducen que parametros van a usar (use 4 y 7) y les tira los resultados.
ACLARACION: no usen parametros muy grandes porque el programa ni los va a tirar... prueben con usar 4 y 8 y van a ver que se va a clavar, ya que el crecimiento que genera esta funcion es enorme y a medida que los valores son mas altos la funcion tambien...
Hacer una piramide Maya vista desde arriba.
Breve introduccion:
¿WHAAAT? esto se puede hacer? sip con python si, diria que es uno de los problemas mas complicados que voy a plantear aca y tengan paciencia en entenderlo (por ejemplo yo todavia ni probe programarlo solo) lo hice con ayuda del profe y lo entendi, pero es complicado si no tenes una idea de este lenguaje
Desarrollo
Finalmente queda asi....
Explicacion: Para no complicarlos tanto (porque es enooorme la explicacion de este problema) si no lo entienden por medio de esos comentarios les paso las instrucciones de como hacerlo por mp (las tengo en un archivo pdf que nos dio el profe)

. Ahora poor medio de ese metodo pueden dibujar lo que se les cante,Tengan siempre en cuenta la figura geometrica y las coordenadas que le van a tirar, yo voy a intentar con un caleidoscopio, cuando lo haga se los paso por aca
El juego del Numero secreto
Bue no hay mucho para explicar, la maquina piensa un numero yyy lo tenes que adivinar
a este lo desarrolle yo obveo papee.
Importas el modulo random (que viene incluido en la libreria del lenguaje)y mediante la funcion randint le pedis que adivine un numero del 1 al 10 en este caso y lo guardas en la variable secreto y los intentos empiezan en 0.
Despues usas un ciclo while (a medida que los intentos se sumen) y cada vez que tires un numero te diga si es mayor o no al secreto. En este caso gane lince obvio no voy a perder en mi propio juego.
Y bue por ultimo viene este... que es un problema que me dieron para resolver (me rompio bastante el bocho en su momento, ahora es mas facil, pero no deja de ser interesante) dice asi:
"Hacer un programa controlado con menú con las
siguientes opciones:
- Ingresando una serie de 8 dígitos binarios
(0 o 1), determinar el valor en decimal del
número ingresado
- Generar una secuencia de números aleatorios,
y cortar la generación cuando aparezcan cinco
pares seguidos, o cinco impares seguidos.
Mostrar la cantidad de números generados y el
porcentaje de pares / impares"
Intentalo lince

y despues decime que onda como te fue, si te salieron los otros este tiene que ser una boludez
no lo subo porque ya da paja a esta hora... mas tarde edito el post y lo subo
Bueno maquinolas, Eso es todo, espero que les haya gustado y no se olviden de comentar y preguntar obviamente, salvo el de la piramide todos los desarrolle y probe yo asi que no hay ningun problema

espero que se diviertan un rato y se rompan la cabeza con estos problemirihillos