Entradas

Mostrando entradas de enero, 2016

Problema 12

The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... Let us list the factors of the first seven triangle numbers:
 1: 1
 3: 1,3
 6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28 We can see that 28 is the first triangle number to have over five divisors.
What is the value of the first triangle number to have over five hundred divisors?
Solución: /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package projecteuler;

/**
 *
 * @author lyonn
 */
public class C12 {

    int tmpCont;

    public void resultado() {

        int cont = 0;

        for (int i = 1; i <= 7000000; i++) {

            cont += i;
            for (int j = 1; j <= cont; j++) {
                int tmp = cont % j;

              …

Problema 25

Problema:

The Fibonacci sequence is defined by the recurrence relation: Fn= Fn−1+ Fn−2, where F1= 1 and F2= 1. Hence the first 12 terms will be: F1= 1
F2= 1
F3= 2
F4= 3
F5= 5
F6= 8
F7= 13
F8= 21
F9= 34
F10= 55
F11= 89
F12= 144 The 12th term, F12, is the first term to contain three digits. What is the index of the first term in the Fibonacci sequence to contain 1000 digits? Solución:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package projecteuler;

import java.math.BigInteger;

/**
 *
 * @author lyonn
 */
public class C25 {

    public void resultado() {

        int i = 1;
        BigInteger[] fx = new BigInteger[50000];
        fx[0] = BigInteger.valueOf(1);
        fx[1] = BigInteger.valueOf(1);

        int tmp = 2;

        for (i = 1; i <= 10000; i++) {

            //fx[tmp]+=BigInteger.valueOf(fx[i-1]+fx[i]);
            fx[tmp] = fx[i].add(fx[i - 1]);

            tmp++;

   …

Análisis de peticiones en logs. [1/2]

Introducción
Últimamente me he interesado por la información que podemos obtener mediante los logs para utilizarla de forma proactiva. Por lo normal utilizamos los registros para detección de anomalías o desperfectos que afectan la operación de una aplicación, pero rara vez utilizamos toda la información que compone un log para proyectar un comportamiento u obtener el diagnóstico de cómo opera con "normalidad" nuestro sistema. 
En esta entrada de blog me gustaría realizar un análisis que responda a la pregunta ¿vale la pena invertir horas en la optimización de código en una aplicación web?. Para ello, nos enfocaremos en la correlación de los tiempos de respuesta (aka TR) y el número de peticiones que el sistema resuelve en un periodo de tiempo. Podríamos auxiliarnos de pruebas de estrés, sin embargo, algunas veces no disponemos de los ambientes necesarios, y solo nos queda hechar mano de los registros productivo, aún así, es decisión de cada quién cómo obtener la información …

Escribiendo...

Por fin me he resignado a escribir un poco de ficción dentro del contexto de las relaciones humanas, en especial, las inextricables relaciones amor-odio-amor. Nunca ha sido de mi interés meterme en esos asuntos, pienso que ya hay mucha literatura al respecto, como para ocupar más bytes en una empresa de tal naturaleza. He decidido hacerlo porque es algo que me impide continuar madurando, puesto que mis ideas me conducen a tal campo. Pretendo hacerlo con dedicación y cuidar un poco las ideas, que a ti, lector, te resulte soportable el gastar algunas horas de tu atención. 

Estas son mis primeras señales de vida después de muchos meses. Pero como dicen "más vale tarde que nunca".