Posts Tagged 'matemáticas'

¿Cuándo 1.000 no es 1.000?

Aunque por convención pensamos en un kilobyte como 1000 bytes y en un megabyte como 1000 kilobytes, ambos términos son ambiguos y equivalen a distintos números en distintos contextos.

Los ordenadores trabajan en binario y un kilobyte suele significar 1.024 (2¹⁰) bytes y un megabyte 1024 kilobytes (1.048.576 bytes). Pero también podrían significar 1000 bytes y 1.000.000 bytes respectivamente. Para intentar poner fin a la discusión, en 1998 se introdujeron nuevas unidades: los mebibytes y los kibibytes. Ahora un kibibytes equivale oficialmente a 1024 bytes y un kilobyte a 1000 bytes; un mebibyte equivale a 1.048.576 bytes y un megabyte 1.000.000.

Pero aún reina la confusión. En el uso común, un megabyte son 10⁶ (1.000.000) bytes al medir un espacio de disco, 2¹⁰ (1024 x 1024) bytes al medir volumen de memoria o el tamaño de archivos, y 1.024.000 (1000 x 1024) para pen drives o los ya apenas usados disquetes de 1,44 megabyte. En todo caso, 1 byte = 8 bits.

Fuente | Historia de las matemáticas (Anne Rooney)

Anuncios

[Offtopic] Project Euler, una web interesante

Creo que fue vía twitter cómo conocí esta web. Project Euler es una web pensada para programadores (y matemáticos) en la que se proponen una serie de problemas que tienen que ser resueltos utilizando el ordenador ya que o bien hay que hacer muchas operaciones o se trabaja con cifras muy grandes. La clave para resolver estos problemas es desarrollar un buen algoritmo para posteriormente traducirlo al lenguaje de programación que prefieras. Cuando te registras en la web, en tu pérfil puedes seleccionar el lenguaje con el que más trabajas. En mi caso y por ser el que mejor manejo, Python.

La web no es muy conocida, sólo hay 566 usuarios españoles registrados para que os hagáis una idea, pero está genial. Actualmente cuenta con 314 problemas y van añadiendo nuevos cada poco tiempo. La dificultad es ascendente, es decir, la web está pensada para que a la vez que resuelvas problemas vayas aprendiendo nuevas cosas que necesitarás para niveles posteriores. Eso sí, eres libre de hacer el problema que quieras. Puedes llevar el orden que más te apetezca y si te quedas atascado en alguno siempre puedes seguir avanzando y volver a él más tarde.

De momento llevo resueltos 14 problemas, los diez primeros son bastante sencillos pero luego la cosa se empieza a poner interesante. Os animo a que os registréis y comentéis si os ha gustado.

+ Project Euler

Repasa matemáticas con Python (II)

Llevo varios días repasando matemáticas a la vez estoy leyendo el libro Aprenda a pensar como un programador con python. Para ir aplicando y asimilando ambos conceptos voy escribiendo pequeños programas en Python con los conceptos de matemáticas. En esta ocasión le tocó a la geometría plana. En realidad lo único que hace el programa es calcular el área de triángulos, cuadrados y polígonos regulares. Además, en el caso del cuadrado, permite calcular la longitud de la diagonal. Algo muy sencillo pero que permite poner en práctica el uso de condiciones, funciones y conversiones de variables tipo string a númericas (int).

El resultado en Python es este:

#!/usr/bin/env python
# -⁻- coding: UTF-8 -*-

import math

# Esta es una función que asigna un color normal (blanco) en la terminal.
def normal():
  print chr(27)+"[0m"

#Función para generar líneas vacias.
def nLineas(n):
  i=0
  while i != n:
    print
    i=i+1

# Funciones para resolver áreas.
def areaTriangulo(b,h):
  return (b*h)/2.0

def areaCuadrado(l):
  return l**2

def areaRegular(lados,lado,apotema):
  return (lados*lado*apotema)/2.0

def diagonalCuadrado(l):
  return math.sqrt(l**2+l**2)

lados=raw_input(chr(27)+"[0m"+"Escribe con que figura geométrica quieres trabajar (número de lados): ")

#En realidad todo el programa es una gran condición que sigue el orden en que se escribió. En cuanto se cumple una condición el programa se termina o pasa a la siguiente condición.
if int(lados) == 3:
  nLineas(1)
  print "Bien! Trabajaremos con el triangulo"
  print "¿Qué desea hacer?"
  print chr(27)+"[1;34m"+"Calcular área(1)?"
  print chr(27)+"[0m"+"Inserte opción:"
  trianguloOpcion=raw_input()
  nLineas(1)
  if int(trianguloOpcion) == 1:
    base=raw_input(chr(27)+"[1;31m"+"Inserte la longitud de la base: ")
    altura=raw_input("Inserte la altura del triángulo: ")
    nLineas(1)
    print chr(27)+"[1;32m"+'\t', "Resultado: ", areaTriangulo(float(base),float(altura))
    normal()
  else:
    print "Opción inválida"
elif int(lados) == 4:
  print "Bien! Trabajaremos con el cuadrado"
  print "¿Qué desea hacer?"
  print chr(27)+"[1;34m"+"Calcular área(1), longitud de la diagonal(2)?"
  print chr(27)+"[0m"+"Inserte opción:"
  cuadradoOpcion=raw_input()
  nLineas(1)
  if int(cuadradoOpcion) == 1:
    lado=raw_input(chr(27)+"[1;31m"+"Inserte la longitud del lado: ")
    nLineas(1)
    print chr(27)+"[1;32m"+'\t', "Resultado: ", areaCuadrado(float(lado))
    normal()
  elif int(cuadradoOpcion) == 2:
    lado=raw_input(chr(27)+"[1;31m"+"Inserte la longitud del lado: ")
    nLineas(1)
    print chr(27)+"[1;32m"+'\t', "Resultado: ", diagonalCuadrado(float(lado))
    normal()
  else:
    nLineas(1)
    print "Opción invalida"
elif int(lados) > 4:
  print "Se trabajará con poligonos regualares de más de cuatro lados"
  print "¿Qué desea hacer?"
  print chr(27)+"[1;34m"+"Calcular área(1)?"
  print chr(27)+"[0m"+"Inserte opción..."
  opcion=raw_input()
  nLineas(1)
  if int(opcion) == 1:
    apotema=raw_input(chr(27)+"[1;31m"+"Inserte la longitud de la apotema: ")
    lado=raw_input("Inserte la longitud del lado: ")
    nLineas(1)
    print chr(27)+"[1;32m"+'\t', "Resultado: ", areaRegular(int(lados),float(lado),float(apotema))
    normal()
else:
  nLineas(1)
  print "Error! Figura no conocida"

raw_input("Enter para salir")

Seguramente tenga algunos fallos y la sintaxis no sea la más clara posible pero bueno, estoy aprendiendo. 🙂 Si queréis probarlo lo mejor es copiar el código en un archivo de texto, guardarlo como prueba.py, darle permisos de ejecución (chmod +x prueba.py) y ejecutarlo en una terminal.

Repasa matemáticas con Python

Ahora que es la vuelta al cole no está mal repasar un poco matemáticas. Pero si a la vez puedes aprender a programar mucho mejor. El lenguaje perfecto para repasar matemáticas es Python. Puedes hacer programas que resuelvan problemas que has hecho el curso pasado. Por ejemplo, en algunos manuales que leí sobre este lenguaje explican como calcular la distancia entre dos puntos aplicando el Teorema de Pitágoras.

Seguir leyendo ‘Repasa matemáticas con Python’


Fedora 14

Visitas al blog

  • 703,883 visitas

Bienvenido!!

Estimado lector, en primer lugar, gracias por seguir mi blog y ayudar a mejorarlo. En esta bitácora encontrarás noticias, tutoriales y muchas cosas más sobre GNU/Linux y el Software Libre, sobre todo de dos distribuciones, Fedora y Arch Linux. No dudes en preguntar tus dudas, comentar las entradas o proponerme ideas para el blog. Más información en Acerca de
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.

Introduce tu correo para suscribirte a este blog y recibir las entradas en tu correo.

Únete a otros 72 seguidores

Comentarios recientes

Marcos en Post-Instalación de Arch …
Dasn en NTP en ArchLinux
Maria en Borrón y cuenta nueva
iyan gonzalez en Borrón y cuenta nueva
Spanish Red en Fedora o Archlinux

Guia de Usuario Fedora 14

Post-instalación de Arch Linux

Categorías

Fedora Blogger Network