InicioCiencia Educacion¿Queres romperte un poco la cabeza programando? Entra Lince

¿Queres romperte un poco la cabeza programando? Entra Lince

Ciencia Educacion7/11/2015
¿Queres romperte un poco la cabeza programando? Entra Lince

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
Computacion
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
computadora

lince
Ahora empezamos con el primer desafio... Las torres de Hanoi...
python

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....
programa
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
¿Queres romperte un poco la cabeza programando? Entra Lince
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.
computadora
(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)
lince

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

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...
programa
Funcion de Ackerman
¿Queres romperte un poco la cabeza programando? Entra Lince
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)
Computacion

2- Creacion del modulo test01 para la vizualizar
computadora
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...
lince
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
python
programa
¿Queres romperte un poco la cabeza programando? Entra Lince
Computacion

Finalmente queda asi....
computadora

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

python
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.
programa
¿Queres romperte un poco la cabeza programando? Entra Lince
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
Computacion
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
Datos archivados del Taringa! original
0puntos
0visitas
50comentarios
Actividad nueva en Posteamelo
0puntos
0visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000
50 Comentarios archivados
Del Taringa! original
H@Hollow_octalucas_6487/15/2015+0-0
@ gracias pibaso
l@lucas_648Hollow_octa7/15/2015+1-0
@ Me había olvidado ahí estan tus 10 te los merecés
@ eso esta bien no esta mal sigueme
j@johnny-rmad_honorem7/12/2015+0-0
@ Uso App Game Kit 2 que se puede usar conBasic o con C++, pienso aprender Basic para dar el salto a C++ (ademas no pierdo el tiempo con Basic ya que puedo aplicarlo en AGK)
h@hot-mailHollow_octa7/12/2015+0-0
@ Te lo pase por mp
a@ad_honorem7/12/2015+0-0
me da cosa este usuario, ayer hizo un post donde decía incoherencias, como este comentario. Me hace acordar a mi abuela.
a@ad_honorem7/12/2015+0-0
no te conviene, no se usa desde hace décadas. Es bueno para entender ciertas cosas, pero los saltos incondicionales son algo que nunca vas a volver a ver.
@ es normal, yo detesto css y c# y todas las huevadas microsohft. Aguante gnu linux vieja, no me importa nada.
@ por qué comparás c++ con c# y con java? son tres tecnologías totalmente distintas.
f@fabiandeleon7/11/2015+0-0
Aguante Delphi vieja, no me importa nada!
C@CristhianPcGamer7/11/2015+0-0
Puede que no sirva, pero al menos se te hará más fácil comprender los otros lenguajes de programación
@ si en Internet vi varias veces que dicen que hay que comenzar con python, lo malo es que en mi universidad comenzamos con c# por eso me baje algunos libros de Internet para entenderle mejor
C@CristhianPcGamer_wtf7/11/2015+0-0
@_wtf si ya se me equivoque quise decir c#
C@Cris07Hollow_octa7/11/2015+0-0
@ no se si durisimo pero muy embolante la semántica es :S.
Ahora me metí a hacer un curso de dreamweaver y html. hace unos años me puse a seguir tutoriales, etc y no entendia nada jajaj. ahora masomenos le voy agarrando la mano
H@Hollow_octaCris077/11/2015+1-0
@ c++ es durisimo jajaja ba eso creo
C@Cris07Hollow_octa7/11/2015+0-0
@ yo estoy trabajando con java y la API SWT ahora, me acostumbre a esas dos y swing no uso mucho ... java a mi parecer es mucho más fácil que C++
l@lmlpunkHollow_octa7/11/2015+0-0
@ inteligencia colectiva
H@Hollow_octa7/11/2015+1-0
Gracias locoon
m@mariogca7/11/2015+0-0
yo se resolverlo a mano ese problema phyton no se, tengo que aprender tanto, me compré un libro que está en español bien explicado para programar microcontroladores en C, despues quiero aprender a programar en phyton para programar rasperrys, también me interesa aprender a programar atmel
l@lmlpunk7/11/2015+0-0
10 puntos sige asi hermano
H@Hollow_octa7/11/2015+2-0
en python y son problemas para pensar un poco todavia no estoy metido en cosas tan grosas
m@mariogca7/11/2015+0-0
programando qué? en qué lenguaje?
J@JABR9981mx7/11/2015+0-1
ni de pedo, no paso de vba
H@Hollow_octa7/11/2015+0-0
esta bueno la verdad te abre una banda la cabeza, el tema de los fractales me re intereso, proximamente voy a hacer un post de eso
@ ¿Que limitaciones tiene python?

@_wtf además de que ahora java, python y otros pueden ser usados como lenguajes de servidor
j@jerauma7/11/2015+0-0
Si sabes python, php lo vas a entender facil.
G@GonzaFz7/11/2015+1-0
Che que copado que les enseñen todas estas cosas, yo estoy estudiando en la UTN FRRe y puros algoritmos pedorros (algún que otro difícil, pero nada desafiante como estos)

Lo más loco que llegue a hacer fue un planificador de procesos
P@Parkourloco17/11/2015+1-0
Uh es que C# es difícil de por sí y si inicias con ese sin saber ningún otro lenguaje mas básico se te va a hacer aún más difícil. Para empezar yo recomiendo C o python que son bastante basicos y te sirven para aprender fundamentos.
_@_wtfCristhianPcGamer7/11/2015+0-0
@CristhianPcGamer c no es lo mismo que c#,c# es el java de microsoft jaja
_@_wtfBolivianoArio-7/11/2015+1-0
@BolivianoArio- Php es lenguaje de servidor
H@Hollow_octa7/11/2015+0-0
pasa pasa, no me toco ese
e@elkadofan7/11/2015+2-0
Alto post jaja, te mataste con la explicación amigo, te interesa hacer un motor gráfico? pásate por mis tutoriales Gracias groso
s@soul278887/11/2015+1-0
En coursera hay una vez al año un curso de python para programar videojuegos. Yo ya lo hice, supuestamente sale la parte 2 mas adelante. Se los recomiendo. De todas formas, en un laburo de verdad todas estas pavadas no te sirven para nada.
Java, PHP, C y sus derivados son los mas utilizados hoy en dia.
t@tucuh7/11/2015+1-0
Te tiene que gustar estar muchas horas escribiendo códigos (A mi me gusta )
C@CristhianPcGamer7/11/2015+0-0
Buen post vieja, yo comencé con c# pero no le entendí bien, ahora me estoy leyendo un libro para comprender mejor, van puntines papu
C@CristhianPcGamer7/11/2015+0-0
Yo también comencé con c, aunque no lo llegue a dominar bien
s@siko20087/11/2015+0-0
Uno muy útil que te va a servir es hacer un programa que te calcula del binario al hexadecimal pasando por todas las bases. O sea, empiezas en base 2 (binario), base 3, base 4, base 5, base 6, etc hasta base 16 (hexadecimal).
a@allcracked7/11/2015+3-0
Yo programo en Javascript. Vivo al límite.
N@Nazgul_19897/11/2015+3-0
Aguante C# y php vieja no me importa nada.
@ en el método de collatz iterative puedes dividir entre dos cuando sea par usando el desplazamiento de bit ( >> ) quedando de esta forma: n>>=1; y cuando haya que multiplicar por 3 y restar 1 puedes incluir también la división entre dos pues siempre resulta un número par, con estas dos cosas haces que el programa sea un poco más rápido, ten en cuenta que al estar dentro de un ciclo esas líneas se ejecutan muchas veces y por mínimo que sea …
@ en el método de collatz iterative puedes dividir entre dos cuando sea par usando el desplazamiento de bit ( >> ) quedando de esta forma: n>>=1; y cuando haya que multiplicar por 3 y restar 1 puedes incluir también la división entre dos pues siempre resulta un número par, con estas dos cosas haces que el programa sea un poco más rápido, ten en cuenta que al estar dentro de un ciclo esas líneas se ejecutan muchas veces y por mínimo que sea …
t@tura9997/11/2015+0-0
aca se puede ver el quilombo que es solucionarlo ...
t@tura999Hollow_octa7/11/2015+1-0
@ Maldita álgebra, y sus formulas !!!
M@MaxPowerOf7/11/2015+0-0
Es muy parecido al lenguaje c no?
h@hot-mail7/11/2015+0-0
si es asi, y vos elejis en que posicion del tablero arranca la pisesa
I@IxezexI7/11/2015+1-0
aguante python vieja, no me importa nada!!
f@franco_talleres7/11/2015+1-0
Yo papu en la utn d cba estudio c#
2@20kilometros7/11/2015+0-6
hola patrocinador por lo que no están hablando con usted sólo quería que le envíe saludos y un amor feliz mano, eres una gran persona, no eres racista, desea rumana y similares, no xenófoba y otra secta llamar en Taringa esta comunidad. Aún no has insultado y quiero darle las gracias por su amabilidad bondadez Me gusta tu buen comportamiento, ningún cambio TIO espero que me conteste cortésmente tanto o como me gusta vuestro culto
V@Vapse27/11/2015+1-2
int porPares=0;
int porImpares=0;
int cont=0;
int numeros=0;
boolean condicion=true;
while( !condicion){

aux = Int.random();
numeros++;
if(!par && esPar(aux))
{
cont=1;
porPares++;

}

if(!par && !esPar(aux)){

cont++;
porImpares++;


}

if(par && esPar(aux))
{

cont++;
porPares;

}

if(par && !es…
h@hot-mail7/11/2015+0-0
Te toco hacer el del tablero de ajedrez? Consigna; "Mover la pieza del caballo tocando todas las posiciones del tablero pero sin tocar las que tocaste"
Tambien se hace con recursividad, si te interesa te paso el source

Autor del Post

H
Hollow_octa🇦🇷
Usuario
Puntos0
Posts5
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.