Hola a todos!
Les cuento que, para ir cerrando el año, me gustaría mostrarles algunas páginas muy copadas de donde van a poder aprender muchas cosas y, de paso, competir.
Algunas tienen competencias más divertidas, con Ranking y Premios, y otras menos. Algunas son todas las semanas, otras una vez al año. Pero todas sirven :) Hay de Google, de Facebook, de TopCoder, etc.
Para esto, los invito los siguientes días:
Viernes 25 de Noviembre, 14.30 hs, labo de al lado de la maqueta (donde siempre).
Viernes 2 de Diciembre, 14.30 hs, labo de al lado de la maqueta (donde siempre).
Lunes 5 de Diciembre, 16 hs, labo de TIC.
La idea es que vengan en cualquiera de esos horarios. Los que no puedan venir en ningún momento, van a poder encontrar toda la info en el blog. Y si les queda alguna duda (lo cual seguramente pase), me consultan por mail, o en algún otro horario de entrenamiento.
Saludos a todos, y los espero, así de paso nos despedimos,
Nico
jueves, 24 de noviembre de 2011
miércoles, 3 de agosto de 2011
Problemas CyM - 10 problemas para 10 días!
Bueno, como ya sabrán el viernes 12 de Agosto (es decir el viernes próximo)es la primer ronda de CyM.
Les dejo problemas para practicar (por su cuenta y en los entrenamientos). Es muy importante que los hagan, porque realmente son muy parecidos los problemas que aparecen año a año en CyM y tenerlos hechos les va a dar una gran ventaja.
Pista: En todos los problemas va a ser necesario meter un for dentro de otro.
1. Encontrar dos números enteros positivos A y B, tales que uno de ellos sea par y el otro sea múltiplo de 3 (no necesariamente en ese orden) y que cumplan
207 · A + 208 · B = 66935
2. Hallar todas las soluciones, con A y B enteros, de la ecuación
4 · A^2 + 2 · B^2 = 2008
Aclaración: A^2 es A al cuadrado
3. Encontrar dos números enteros positivos X e Y tales se cumplan las siguientes dos ecuaciones simultáneamente:
X^2 + Y^2 = 999297
72 · X + 27 · Y = 76869
4. Encontrar tres números enteros positivos X; Y; Z, todos distintos, tales que
646 · X + 2006 · Y = 39 · Z
5. Encontrar cuatro números enteros X; Y; Z; W, todos entre 10 y 20, tales que
X · Y + Z · W = 539
6. Hallar un número entero mayor que 1 que sea divisor de 24272 y que también sea divisor de 25461.
7. Encontrar todas las soluciones de la ecuación
74 · X + 58 · Y - 47 · Z = 12004 tales que X, Y y Z son números enteros positivos menores o iguales que 100
Un poco más difíciles:
8. Encontrar tres números enteros positivos X, Y y Z tales que sean todos divisores de 20077002 y su suma sea 299.
9. Buscar un número entero positivo D mayor que 1, que sea divisor de 2070 y tal que además D+1 sea divisor de 2071.
10. Encontrar todos los números enteros positivos D entre 1000 y 10000 tales que D es múltiplo de 23 y D es divisor de 480861
Practiquen mucho que ya falta poco!
Saludos!
EDIT: En comentarios pueden encontrar los links a un par de códigos hechos por alumnos!
Les dejo problemas para practicar (por su cuenta y en los entrenamientos). Es muy importante que los hagan, porque realmente son muy parecidos los problemas que aparecen año a año en CyM y tenerlos hechos les va a dar una gran ventaja.
Pista: En todos los problemas va a ser necesario meter un for dentro de otro.
1. Encontrar dos números enteros positivos A y B, tales que uno de ellos sea par y el otro sea múltiplo de 3 (no necesariamente en ese orden) y que cumplan
207 · A + 208 · B = 66935
2. Hallar todas las soluciones, con A y B enteros, de la ecuación
4 · A^2 + 2 · B^2 = 2008
Aclaración: A^2 es A al cuadrado
3. Encontrar dos números enteros positivos X e Y tales se cumplan las siguientes dos ecuaciones simultáneamente:
X^2 + Y^2 = 999297
72 · X + 27 · Y = 76869
4. Encontrar tres números enteros positivos X; Y; Z, todos distintos, tales que
646 · X + 2006 · Y = 39 · Z
5. Encontrar cuatro números enteros X; Y; Z; W, todos entre 10 y 20, tales que
X · Y + Z · W = 539
6. Hallar un número entero mayor que 1 que sea divisor de 24272 y que también sea divisor de 25461.
7. Encontrar todas las soluciones de la ecuación
74 · X + 58 · Y - 47 · Z = 12004 tales que X, Y y Z son números enteros positivos menores o iguales que 100
Un poco más difíciles:
8. Encontrar tres números enteros positivos X, Y y Z tales que sean todos divisores de 20077002 y su suma sea 299.
9. Buscar un número entero positivo D mayor que 1, que sea divisor de 2070 y tal que además D+1 sea divisor de 2071.
10. Encontrar todos los números enteros positivos D entre 1000 y 10000 tales que D es múltiplo de 23 y D es divisor de 480861
Practiquen mucho que ya falta poco!
Saludos!
EDIT: En comentarios pueden encontrar los links a un par de códigos hechos por alumnos!
miércoles, 6 de julio de 2011
Primer competencia!
Atentos todos, que la semana próxima tenemos nuestra primer competencia. Ya les voy a dar más información, pero por ahora practiquen mucho!
Aviso: este viernes 8/7 NO hay entrenamiento. Nos reencontramos la semana próxima!
Aviso: este viernes 8/7 NO hay entrenamiento. Nos reencontramos la semana próxima!
viernes, 1 de julio de 2011
Desafíos pre-competencias
Acá les dejo algunos desafíos que son muy similares a los que se toman en algunas competencias. Después de hacerlos, ¡ya van a estar listos para atacar sus primeros problemas de competencia!
1. El usuario ingresa 2 números. Deben decir si uno es divisible por el otro (recuerden el operador '%')
2. El usuario ingresa un número. Deben decir todos los divisores de ese número.
3. El usuario ingresa un número. Deben decir si ese número es o no primo (un número es primo si sus únicos divisores son 1 y sí mismo).
4. EL usuario ingresa 2 números. Deben sacar todos los primos entre esos 2 números. Después, digan cuántos son (¡sin contar!).
5. Encuentren 2 números enteros cuya multiplicación de como resultado 12709189 (no vale 1*12709189!!)
6. Encuentre cuatro números enteros X Y Z W, todos entre 10 y 20, tales que
X · Y + Z · W = 539
Disfruten y practiquen!
Nico
1. El usuario ingresa 2 números. Deben decir si uno es divisible por el otro (recuerden el operador '%')
2. El usuario ingresa un número. Deben decir todos los divisores de ese número.
3. El usuario ingresa un número. Deben decir si ese número es o no primo (un número es primo si sus únicos divisores son 1 y sí mismo).
4. EL usuario ingresa 2 números. Deben sacar todos los primos entre esos 2 números. Después, digan cuántos son (¡sin contar!).
5. Encuentren 2 números enteros cuya multiplicación de como resultado 12709189 (no vale 1*12709189!!)
6. Encuentre cuatro números enteros X Y Z W, todos entre 10 y 20, tales que
X · Y + Z · W = 539
Disfruten y practiquen!
Nico
Etiquetas:
Computación y Matemática,
Desafios,
Inicial
jueves, 23 de junio de 2011
Introducción a la Programación Dinámica - Nivel Avanzado
El día de ayer vimos un problema clásico de programación dinámica, pero que tiene relación con otras técnicas:http://www.blogger.com/img/blank.gif
Máxima subsecuencia creciente
Explicación en Algorithmist
Explicación en Wikipedia
El problema consiste en, dada una secuencia de números, encontrar la subsecuencia más larga de números ordenados en forma creciente (no necesariamente consecutivos).
Ejemplo:
En la secuencia 3 1 4 5 2 17 8 11
La secuencia más larga es 3 4 5 8 11, con longitud 5.
Ayer vimos una solución sencilla que tarda o(n^2)
También vimos una solución que usa busqueda binaria, o trucos equivalentes, para reducir la complejidad a o(n*logn).
Si alguno se anima, puede dejar en los comentarios un programa que resuleva el problema!
Nico
Máxima subsecuencia creciente
Explicación en Algorithmist
Explicación en Wikipedia
El problema consiste en, dada una secuencia de números, encontrar la subsecuencia más larga de números ordenados en forma creciente (no necesariamente consecutivos).
Ejemplo:
En la secuencia 3 1 4 5 2 17 8 11
La secuencia más larga es 3 4 5 8 11, con longitud 5.
Ayer vimos una solución sencilla que tarda o(n^2)
También vimos una solución que usa busqueda binaria, o trucos equivalentes, para reducir la complejidad a o(n*logn).
Si alguno se anima, puede dejar en los comentarios un programa que resuleva el problema!
Nico
Etiquetas:
Algoritmos,
Avanzado,
Problemas,
Programación Dinámica
viernes, 17 de junio de 2011
Desafíos 3 - Nivel Inicial
Acá van los desafíos del tercer encuentro. Son para practicar la estructura de repetición "for".
1.Mostrar en la pantalla los números del 1 al 100
2.Mostrar en la pantalla los números del 100 al 1 (en ese orden)
3.Mostrar en la pantalla los números del 100 al -100 en ese orden.
4.El usuario ingresa dos números a y b. Deben mostrar todos los números entre a y b inclusive.
5.Hallar la suma de todos los números entre 1 y 100 inclusive.
6.El usuario ingresa dos número a y b. Deben hallar el valor de la suma y de la multiplicación de todos los números entre a y b inclusive.
7.Calcular y mostrar en la pantalla las primeras 30 potencias de 2.
Pongan en comentarios sus programas con la solución a los desafíos!
Saludos!
1.Mostrar en la pantalla los números del 1 al 100
2.Mostrar en la pantalla los números del 100 al 1 (en ese orden)
3.Mostrar en la pantalla los números del 100 al -100 en ese orden.
4.El usuario ingresa dos números a y b. Deben mostrar todos los números entre a y b inclusive.
5.Hallar la suma de todos los números entre 1 y 100 inclusive.
6.El usuario ingresa dos número a y b. Deben hallar el valor de la suma y de la multiplicación de todos los números entre a y b inclusive.
7.Calcular y mostrar en la pantalla las primeras 30 potencias de 2.
Pongan en comentarios sus programas con la solución a los desafíos!
Saludos!
miércoles, 15 de junio de 2011
Desafíos 2 - Nivel Inicial
A continuación, los desafíos correspondientes al segundo encuentro.
Temas: Entrada y Salida por pantalla, variables, estructura condicional ( if ), operadores (>, >=, ==, !=, etc)
Temas: Entrada y Salida por pantalla, variables, estructura condicional ( if ), operadores (>, >=, ==, !=, etc)
- Deben elegir un número. El usuario tiene que adivinarlo, ingresándolo . Si lo adivina, pongan que ganó. Si no, que perdió.
- El usuario debe ingresar 2 números. Deben devolver cuál es el mayor.
- El usuario debe ingresar 2 números. Deben devolver cuál es el mayor, y si son iguales, decir que son iguales.
- El usuario debe ingresar 3 números y ustedes devolver cuál es el mayor de ellos.
- El usuario debe ingresar 3 números y ustedes deben devolverlos ordenados (de menor a mayor o viceversa).
- Hacer una calculadora!! Es decir, el usuario ingresa 3 numeros: los primeros 2 son los números a operar. El tercero es: 1 si quiere sumar, 2 para restar, 3 para multiplicar, 4 para dividir.
Ej: 4 6 3 devuelve 4*6=24
Suscribirse a:
Entradas (Atom)