Mostrando entradas con la etiqueta fracciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta fracciones. Mostrar todas las entradas

lunes, 14 de diciembre de 2015

Paradoja de la dicotomía

Problema

Zenón está a ocho metros de un árbol. Llegado un momento, lanza una piedra, tratando de dar al árbol. La piedra, para llegar al objetivo, tiene que recorrer antes la primera mitad de la distancia que le separa de él, es decir, los primeros cuatro metros, y tardará un tiempo (finito) en hacerlo. Una vez llegue a estar a cuatro metros del árbol, deberá recorrer los cuatro metros que le quedan, y para ello debe recorrer primero la mitad de esa distancia. Pero cuando esté a dos metros del árbol, tardará tiempo en recorrer el primer metro, y luego el primer medio metro restante, y luego el primer cuarto de metro... De este modo, la piedra nunca llegará al árbol. Es posible utilizar este razonamiento, de forma análoga, para «demostrar» que la piedra nunca llegará a salir de la mano de Zenón.

Potencias fraccionales de 2


Desarrolle un programa que tabule las potencias fraccionales de 2 (1/2, 1/4, 1/8, 1/16, ...) y sus sumas parciales en forma decimal.

La salida del programa debe comenzar así:

Potencia  Fraccion  Suma
1          0.5       0.5
2          0.25      0.75
3          0.125     0.875
4          0.0625    0.9375
...       ...

El programa debe terminar cuando la fracción sea menor o igual que 0.00001.

La tercera columna contiene la suma de todas las fracciones calculadas hasta esa fila.

Solución en Perl

Usamos printf para imprimir las fracciones con una cantidad específica de decimales por un motivo estético

#!/usr/bin/perl
use strict;
use warnings;

my $n= 1;
my $fraccion= 1/(2**$n);
my $suma= $fraccion;
print "Potencia \t\tFraccion \t\tSuma\n";
while ($fraccion>0.00001){
  print "$n \t\t";
  printf "%.16f \t\t%.5f \n",$fraccion,$suma;
  $n++;
  $fraccion= 1/(2**$n);
  $suma+= $fraccion;
}