What I believe

September 4th, 2006 admin

I believe in my religion, not in giving it a name,
I believe in mistakes, and lessons, but not in placing blame.
I believe in doubt and reason, only where that may apply
I believe destiny may overcome reason and not be tamed by “Why?”
I believe also in the destiny one builds, cause preceding effect,
Making the best with what you have, and the most of what you get.
I believe in taking life as seriously, as life does take you,
Working with it as best you can, but expecting a joke or two.
I belive in the magic, powerful, that small things and acts can make,
A few good words, an honest ear, a smile, a forgiven mistake
creating happiness from nothing, dissolving sorrow, fear and tact
This I believe is real magic and better than the best Vanishing Act.
I believe in an honest attempt at excellence in every deed,
Not thinking of the tree to be, just enjoying planting the seed.
I believe in teamwork and community, in compassion and moderation,
I believe also in the individual and the infinite in one.

(Anil Krishna, September 4th, 2006)

Posted in Poetry | No Comments »

I don’t know. I don’t know. Now I know. Now I know!

September 3rd, 2006 admin

Question

My friend Srikanth, aka Coffee, sent this question to the egroups after hearing the one Anant had asked me.

A reporter meets two famous mathematicians P1 and P2 in a train and tells them that he is going to whisper the sum of two 2-digit numbers into P1’s ear and their product into P2’s, and then he wants them to guess what those two 2-digit numbers were. After he has whispered the sum and the product to P1 and P2 respectively, the conversation goes as follows:
P1: I don’t know.
P2: I don’t know either.
P1: Now I know.
P2: Now I know too.

What are the two numbers?

Solution

I ended up writing a program for this one too, although if there are paper-pencil or in-the-head kinds of solutions, I’d be happy to hear about those.

Lets take the statements one by one, and see how they reveal more and more detail. Notice that here P1 is the person with the SUM and P2 is the persone with the PRODUCT (other way round compared to the one Anant asked me). Also notice that since the range includes only 2-digit numbers, denoting the two numbers as X and Y, both X and Y lie between 10 and 99.

P1 says: I don’t know.
Deduction: Not very surprising. Unless the sums were 20 , 21, 198 or 197, there are multiple ways to add two numbers to get a SUM in the range 20 to 198.

P2 says: I don’t know either.
Deduction: X and Y are not primes, because if they were, then the product could have given away the factors. In fact, to make it more general, the product P = X*Y is such that there is more than one way to factorize it into valid factors (each factor lying between 10 and 99).

P1 says: Now I know.
Deduction: P1 has a sum S = X+Y such that of all the ways to add up two legal numbers (between 10 and 99) to get S, there is exactly one pair (which P1 could therefore identify), for which the product has more than one valid factorization. If it were any other way of adding up two numbers to add to S, then P2 would have immediately identified the unique factorization.

P2 says: Now I know too.
Deduction: P2 has a product PP = X*Y such that of all the valid (numbers between 10 and 99) ways to factorize it, there is only one pair that adds up to a sum that P1 could have identified. That is, only one factorization of P is such that if the factors were added, that sum could have been reached by only one pair of valid numbers, for the product of which multiple valid factorizations exist.

C Program to solve the same problem (specific to this range, but could be generalized and optimized to save time and space)


    #include <stdlib.h>
    #include <stdio.h>

    main(int argc, char** argv)
    {
      unsigned int i,j,k;

      unsigned int histProducts[10000];
      unsigned int X[10000];
      unsigned int Y[10000];
      unsigned int Z[10000];

      for(i=1;i<10000;i++){
        histProducts[i]=0;
        X[i]=0;
        Y[i]=0;
        Z[i]=0;
      }
      for(i=10;i<100;i++){
        for(j=10;j<100;j++){
          if(i<=j){
            k=i*j;
            histProducts[k]++;
            if(histProducts[k]==1) X[k]=i;
            else if (histProducts[k]==2) Y[k]=i;
            else if (histProducts[k]==3) Z[k]=i;
            //else printf(”%d has more than 3 ways of factorizing”, k);
          }
        }
      }

      unsigned int histNonUniqueProdsOfComponents[200];
      unsigned int A[200];
      unsigned int B[200];
      for(i=1;i<200;i++){
        histNonUniqueProdsOfComponents[i]=0;
        A[i]=0;
        B[i]=0;
      }
      for(i=20;i<197;i++){
        for(j=10;j<=(i>>1);j++){
          if(j>=10 && j<=99 && (i-j)>=10 && (i-j)<=99){
            if(histProducts[j*(i-j)]>1){
              histNonUniqueProdsOfComponents[i]++;
              A[i]=j;
              B[i]=i-j;
            }
          }
        }
      }

      unsigned int foundValidProds;
      for(i=1;i<200;i++){
        if(histNonUniqueProdsOfComponents[i]==1){
          foundValidProds=0;
          k=A[i]*B[i];
          printf(”%d,%d SUM=%d PRODUCT=%d\n”,A[i],B[i],A[i]+B[i],k);
          printf(”For this PRODUCT %d, the following factorizations exist”,k);
          if(histProducts[k]==2){
            printf(” %d*%d,”,X[k], k/X[k]);
            printf(” %d*%d\n”,Y[k], k/Y[k]);
            if(histNonUniqueProdsOfComponents[X[k]+k/X[k]]==1) foundValidProds++;
            if(histNonUniqueProdsOfComponents[Y[k]+k/Y[k]]==1) foundValidProds++;
            if(foundValidProds==1)
              printf(”Of these factorizations only 1 could have been identified by the SUM guy–VALID\n\n”);
            else if (foundValidProds>1)
              printf(”Of these factorizations >1 could have been identified by the SUM guy\n\n”);
            else
              printf(”Something is wrong with this factorizations\n\n”);
          }
          else if(histProducts[k]==3){
            printf(” %d*%d,”,X[k], k/X[k]);
            printf(” %d*%d,”,Y[k], k/Y[k]);
            printf(” %d*%d\n”,Z[k], k/Z[k]);
            if(histNonUniqueProdsOfComponents[X[k]+k/X[k]]==1) foundValidProds++;
            if(histNonUniqueProdsOfComponents[Y[k]+k/Y[k]]==1) foundValidProds++;
            if(histNonUniqueProdsOfComponents[Z[k]+k/Z[k]]==1) foundValidProds++;
            if(foundValidProds==1)
              printf(”Of these factorizations only one could have been identified by the SUM guy–VALID\n\n”);
            else if (foundValidProds>1)
              printf(”And of these factorizations >1 could have been identified by the SUM guy\n\n”);
            else
             printf(”Something is wrong with this factorizations\n\n”);
          }
          else if(histProducts[k]>3){
            printf(” %d*%d,”,X[k], k/X[k]);
            printf(” %d*%d,”,Y[k], k/Y[k]);
            printf(” %d*%d,”,Z[k], k/Z[k]);
            printf(” OTHERS EXIST TOO\n\n”);
          }
        }
      }

    }

Posted in Tidbits | 1 Comment »

A beautiful movie - The Mortorcycle Diaries

September 2nd, 2006 admin

The Motorcycle Diaries is a movie that I rank right beside Amelie as one of the better movies I have seen. The haunting music of the track “De Usuahia A La Quiaca” has the edge-of-the-world feel to it that the whole movie carries. The movie is based on a real journey and draws form the written record of the travels. The surreal beauty of South America is revealed at every turn the two young travelers make during their 10,000 km journey. The journey, both physical and philosophical, has the freshness, the honesty and the unpredictability that would make you beileve that you were journeying with the two young men - Ernesto Guevara and Alberto Granado. Ernesto, I learnt, went on to become a part of the Cuban Revolution, and a communist leader. This movie gives us glimpses of the man he was going to become, and takes us through the journey that had a big impact on his philosophy. It is a story of companionship, bravery, compassion and self-realization. Alberto, his companion is an adventure-loving, happy-go-lucky, clever-talking guy who amidst his carefree ways sees Ernesto morphing into the leader he was going to become. I highly recommend it.

Posted in Reviews | No Comments »

I don’t know. I know that. Now I know. I know too!

August 24th, 2006 admin

Question

Anant asked me this question. He had heard it in a talk by an executive at Cisco Systems.

There are 2 numbers X and Y (integers).
2<= X < Y <= 100
Person 1, P1, knows X * Y (product).
Person 2, P2, knows X + Y (sum).
P1 knows that P2 knows the sum, P2 knows that P1 knows the product.
They have this conversation:
P1: I do not know what X and Y are.
P2: I knew you would not know.
P1: Now I know what X and Y are.
P2: Now I too know what X and Y are.
What are X and Y?

Solution

This is not an easy one. At least not as easy as the previous puzzle Anant had asked. I will provide a brief commentary on the approach and then present a C program that solves the problem. The comments in the program may also be of some help, although there is probably no alternative to going through the process yourself.

Lets take the statements one by one, and see how they reveal more and more detail, thereby narrowing our choice of potential answers until we are left with one. Of course we were lucky to be left with exactly one. We could, with a larger range for X and Y, end up with more than one pair for answers. Before evaluating the statements I think there are some key things to realize. The problem is easier to solve if you were either P1 or P2. But you are not. You are relying on reducing a set of candidates such that what P1 and P2 could do at a given step and no earlier, makes sense. So other than P1’s and P2’s deductions YOUR deductions play a role. The second realization is that you might have to use a computer to help you out, for the set of possible pairs is quite big to start with. Without loss of generality I choose both P1 and P2 to be male and use “he”,”his” or “him” to refer to them.

P1 says: I do not know what X and Y are.
P2’s deduction: NOTHING, as his next statement shall reveal.
YOUR deduction: Aha! X and Y are not prime, else X and Y would be the only non-trivial factors in a factorization of X*Y.

P2 says: I knew you would not know.
P1’s deduction: I see. So P2 knew that X and Y are not both prime. This is only possible if X+Y is a sum that two prime numbers in the range from 2 to 100 cannot ever add up to.
YOUR deduction: Exactly same as P1’s deduction.

P1 says: Now I know what X and Y are.
P2’s deduction: I see. So P1 has a product X*Y such that he could calculate the correct factors, i.e. X and Y, out of all possible factors of X*Y. That means there is only one factorization of X*Y, such that the two factors X and Y satisfy the condition that X+Y is a sum that cannot be reached by adding two primes.
YOUR deduction: Exactly same as P2’s deduction.

P2 says: Now I too know what X and Y are.
P1’s deduction: NOTHING, he has solved the problem already, and has stopped listening to P2.
YOUR deduction: Aha! P2 has been able to solve the problem. P2 knew what X+Y was. P2 also knew that P1, who knew X*Y, figured it out. So P2 knew that X*Y is such that there is only factorization that when added leads to a sum that cannot be reached by adding two primes. So P2 now looks at X+Y that he knows and figures out all possible pairs that add up the sum X+Y. These are pairs such as (2,(X+Y-2)), (3,(X+Y-3)) etc.. The fact that P2 was able to pick the correct one from these possible pairs implies that there is only one pair that satisfies the property that if multiplied, the product has only one factorization (say X*Y) such that the two factors satisfy the condition that X+Y is a sum that cannot be reached by adding two primes. But we do not know X+Y. So we will have to choose all possible candidates for X+Y. Of course, we need to restrict the search to summations that cannot be reached by adding any primes (to honour P2’s first observation). So we will try to find the pair that P2 could have identified had that sum been what he was handed.

Luckily, we find only one sum that satisfies the property that P2 could have solved the problem. So we have the solution that way. If there were two such pairs, as indeed there could be with a larger set of choices for X and Y, P2 might have been able to solve it but not us.

Upon researching further on the net, I found this link to how the famous computer scientist and mathematician Edsgar W. Dijkstra’s solved it without the help of a computer and with hardly any help from paper and pencil. A couple of more interesting observations are revealed than I did above. He makes a note, in his own handwriting, at the end of the paper that he learnt that his nearly-blind sister had solved the very same problem in the sixties.

C Program to solve the same problem (specific to this range, but could be generalized and optimized to save space)


    #include <stdlib.h>
    #include <stdio.h>
    const unsigned int primes[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
    unsigned int numOfPrimes =sizeof(primes)/sizeof(primes[0]);
    main(int argc, char** argv)
    {
      unsigned int i,j;
      /*=============================================
      * P1 does not know what X & Y  are from XY
      * X, Y are not both prime
      ==============================================*/

      /*=============================================
      * P2 already knows the above fact.
      * => X+Y cannot be a sum that can ever be
        gotten by adding two primes in the given range
      * histSumOfPrimes[200] is an indicator of which
        X+Y sums could not be gotten by adding primes
      * if histSumOfPrimes[i] == 0, that implies that
        i is a sum of two numbers, that could not be
        both prime. In other words i is a candidate
        for what P2 has been given
      ==============================================*/
      unsigned int histSumOfPrimes[200];
      for(i=0;i<200;i++)
        histSumOfPrimes[i]=0;

      for(i=0;i<numOfPrimes;i++)
        for(j=0;j<numOfPrimes;j++)
            histSumOfPrimes[primes[i]+primes[j]]++;

      /*=============================================
      * P1 is now able to figure out X and Y from XY
      * So of all the ways to factorize XY into a*b,
        there is exactly one such that
        histSumOfPrimes[a+b]==0
      * We as the third person also know that we only
        need to consider as the potential product P1
        has, only those XY products for which
        histSumOfPrimes[X+Y]==0
      * histValidProds[10000] is a histogram that
        keeps track of how many ways there are to
        get a product XY from X and Y that satisfy
        histSumOfPrimes[X+Y]==0
      ==============================================*/

      unsigned int histValidProds[10000];
      for(i=0;i<10000;i++)
        histValidProds[i]=0;

      for(i=2;i<=100;i++)
        for(j=2;j<=100;j++)
          if(i<=j)                  //to avoid double counting
            if(histSumOfPrimes[i+j]==0)
              histValidProds[i*j]++;

      /*=============================================
      * P2 is now also able to figure out X and Y from
        X + Y.
      * There are several potential break-ups P2 must
        consider. Starting from 2+(X+Y-2), 3+(X+Y-3)
        etc.
      * From these, for him to be sure he knows which
        is the pair a,b such that a+b = X+Y, he needs
        to be sure that a,b are such that
        histValidProds[a*b]==1, that is, there is
        only one way to get a factorization of a*b
        such that histSumOfPrimes[a’+b’]==0 (where
        a’*b’ = a*b)
      * Since we as the third person do not know which
        X+Y P2 is starting from, we consider all
        potential sums, i.e sums such that
        histSumOfPrimes[X+Y]==0
      ==============================================*/
      unsigned int histValidSums[200], X[200], Y[200];
      for(i=0;i<200;i++){
        histValidSums[i]=0;
        X[i]=0;
        Y[i]=0;
      }

      for(i=4;i<=200;i++){
        for(j=2;j<=(i>>1);j++){     //to avoid double counting
          if(histSumOfPrimes[i]==0 && histValidProds[j*(i-j)]==1)
           if(histValidSums[i]==0){
             histValidSums[i]=1;
             X[i]=i-j;
             Y[i]=j;
           }
           else
             histValidSums[i]=2;    //some invalid count
        }
      }

      /*=============================================
      * All potential X,Y values are now printed
      * There is no reason to expect there to be only
        1 pair. If it is 1 pair, we as the third
        person, should consider ourselves lucky.
      ==============================================*/
      for(i=0;i<200;i++)
        if(histValidSums[i]==1)
          printf(”%d,%d\n”,X[i],Y[i]);
    }

Posted in Tidbits | No Comments »

A diagonal through a rectangular grid of squares

August 20th, 2006 admin

Question

Anant asked me this question. He had heard it in a talk by an executive at Cisco Systems.

“There is a rectangular grid composed of 1×1 squares (i.e unit squares). The grid measures m squares by n squares. How many squares will a diagonal pass through?”

There are potentially many ways to compute a solution to this one. A deep dive into discrete mathematics is one way to tackle the problem, but the fact that an executive asked the question made be believe that there had to be a more elegant approach to solving it. The lesson the executive wanted to share with his colleagues was, probably, that a problem may have only one solution, but there may be a more elegant way to get to it and a less elegant way. Elegance of a solution is probably as important an aspect as correctness. Elegance not only saves time, but it also makes the solution easy to implement, understand and sell. I believe elegance should be a criterion to further qualify a solution beyond it’s correctness.

Getting back to the question, here is a figure showing an example scenario where mxn is 5×9.

Each square in the grid is 1×1.Draw a diagonal through the grid, as shown in the next figure.

The diagonal goes through some number of the 1×1 squares. These squares are highlighted in the next figure.

In this example it is easy to count that there are 13 squares that the diagonal goes through. What is the general solution in terms of m and n?

Solution

Read this solution only after you have either solved the problem in your way or have at least given it a good think. Keep an eye on how you approached the problem. The first step in the solution is to realize that the answer is not a trivial answer such as max(m,n), i.e. the bigger of m and n, or a non-integeral sqrt(m*n), or some variation there of. To prove it to youself, draw a 2×3 grid, and see that in this case the diagonal passes through 4 squares. Now draw a 2×4 grid and notice that the diagonal again passes through 4 squares! So the solution, though increasing in general as m and n grow, might sometimes give the same answer for two different mxn values.

I will dive straight into my solution without going into other approaches. I feel that my solution is relatively straightforward, quite thorough and yet, not too hard to explain. The main observation that gets us started is to notice that m and n can have two kinds of relationships. In one case, they might be relatively prime. That means there is no common factor between the two larger than 1. Highest Common Factor of m and n = HCF(m,n) = 1. The other case is that there is a common factor larger than 1. Taking examples, if mxn is 2×3, there is no common factor other than 1. If mxn is 2×4, then 2 is a common factor. The reason this is important is that the diagonal, in its journey from one corner of the rectangular grid to the other, only passes through a grid-point (i.e the corner where 4 1×1 squares meet) if m and n are not relatively prime! Several questions arise here. First is “Why?” and the second is “So what?”. To prove this, let us use a contradiction approach. Say m and n are relatively prime. There is no common factor between m and n other than the obvious 1. Say the diagonal passes through a grid-point. Let’s pick the first grid point it passes through and call it GP. Let C1 be the corner the diagonal “starts” at, and C2 be the corner the diagonal “ends” at. Since the diagonal is a single line and has a constant slope, the slope from C1 to GP is the same as the slope from GP to C2. This implies that, treating GP as C1, the diagonal will meet another grid-point in relatively the same position from GP as GP was from the original C1. Eventually since the diagonal must hit the ending corner C2, C2’s co-ordinates (m,n), must be a multiple of the co-ordinates of the first grid-point GP, say (m’, n’). m is k*m’ and n is k*n’, for some k, which therefore is a factor. This implies that m and n cannot be relatively prime. Putting it another way, if m and n are relatively prime the diagonal cannot pass through grid-points.

Once the effect of relative primality between m and n is established, it is a very easy problem to solve. Say m and n are relatively prime. Then the diagonal never goes through any of the intermediate corners of the 1×1 squares. Only corners it touches are those of the square the diagonal starts from and the square the diagonal ends at. Only way the diagonal enters a new square is from the top or side of a 1×1 square, never from a corner. Another way to say this is, each time the diagonal cuts either a horizontal or vertical grid line it enters a new square. That means to calculate the number of squares the diagonal passes through, the only thing we need to calculate is the number of vertical and horizontal grid lines the diagonal cuts. And that is easy to calculate. Imagine for a second that the horizontal grid lines vanished. The number of vertical lines the diagonal has to cut across to reach the other corner is … well, all the vertical lines there are, which is n - 1. This is shown in the figure. Now, for a second imagine that the horizontal lines are back, but the vertical lines have vanished. The diagonal must cut through the m - 1 horizontal lines.


The diagonal, even before it starts cutting any of the horizontal or vertical lines, must start from the first square, so it touched that one square without cutting any grid lines. So we add 1 to the total count of grid lines cut by the diagonal. This gives us,

The number of squares the diagonal passes through when m and n are relatively prime is
= (n-1) + (m-1) + 1
= m+n-1 : let’s call this Equation 1

So that brings us back to the case where m and n have a common factor. The largest common factor is HCF(m,n). If you look at the mxn grid, it is basically a replication of the problem k times where k is the HCF(m,n). This is shown in the figure. Therefore the answer is to solve the problem for the smallest relatively prime grid of size m/k x n/k and just multiply that answer by k, since the problem repeats k times across the length of the diagonal, as shown in the next figure.

This gives us the final solution to this problem.
Solution for the m/k x n/k grid
= m/k + n/k - 1 (from Equation 1)

Solution for the m x n grid
= k*(m/k + n/k -1)
= m + n - k
= m + n - HCF(m,n) : let us call this Equation 2

Equation 2 is the final answer.

Posted in Tidbits | No Comments »

A House for Mr. Biswas by V. S. Naipaul

August 5th, 2006 admin

A House For Mr Biswas Cover ImageMy friends Ashwin and Tania recommended this book and the following is from an email I wrote to them after reading the book.How goes life? Or in Mohun Biswas’s words, “How life, maan?”. I am still struggling to figure out the book. The tragi-comic look at the entire life of a man, leaves you wondering if it is a happy ending, a sad ending or the less categorizable, yet more recognizable ending. Endings as they typically are in real life, sadly abrupt in a way, never having achieved life’s true potential, yet satisfyingly complete, having achieved the one goal in his life. The beautiful and believable sense of humour, never taking life too seriously, is the only way he gets through life, which is otherwise overwhelmingly complicated, sad and painful.

When I was about a third of my way into the book, I was not sure why I was reading it. It seemed to have no tangible theme, too many characters and a primarily depressing story (if you could call it a story). It was as if the author picked up reams of paper and just wrote what came to his mind, letting the events and narrative flow which ever way they chose to. It was not until Mr. Biswas started tasting “victories” that I got hooked. Victories is a big word, for what were primarily small satisfactions in life - a small job, a good comeback, an occasional acknowledgement, an intelligent son, temporary privacy. These inconsequential satisfactions, in an intricate net of inconsequential emotions from inconsequential people in an elaborate yet equally inconsequential family define the few moments of joy in Mr. Biswas’ life. And the theme of the book seemed to emerge.

Mr. Biswas lives his short life, struggling for a sense of self and place. He is constantly being pulled down, not by an evil villain, not by a calamity of nature, not by a debilitating disease. He struggles against the real horrors of life, its inconsequential realness, its uncontrollable meandering, its invincible boredom. He fights. The fights he puts up are spirited. He loses some. He wins some. He laughs, he cries, he is elated, he is depressed, and yet he never gives in. He is a hero who fought grinding, never-ending battles which really did not win him anything, but at the same time won him the only thing he could hope for in his condition. A purpose. A goal. Something to look forward to. Something to live for. The beauty of the story and the writing is its truthfulness. It brings out the extraordinary in ordinary man’s ordinary life. One puts down the book with a sense of calm and understanding that is comparable to one you draw from a book on philosophy. “A House for Mr Biswas” is a strangely satisfying read that grows on you as you delve deeper into Mohun Biswas’s travails, and leaves you with an almost involved attachment to him, his family and his life.

V. S. Naipaul writes with a thin layer of believable humour protecting the characters and the readers from the insane helplessness of certain situations. The descriptions of the various regions of the J-shaped tiny island of Trinidad that Mr. Biswas spends his entire life in, the dialect, the social structure, the family structure and the life of a Hindu family Mr. Biswas marries into is expertly intertwined with the story. The strength of this book is the author’s ability to truthfully represent the seemingly purposeless life of a man, and yet bring out the the purpose in his life and that of every human being.

Posted in Reviews | No Comments »

Market Economy

July 3rd, 2006 admin

You’ve reached the land of marketing genius
and of course, “Your call is important to us”.
To continue in English please press one
or you may hang up and miss all the fun.
We’re currently busy collecting “Low Hanging Fruit”
you may listen to music after hitting mute.
I’m away from my desk, “Thinking Outside the Box”,
enjoy you options in the land of stocks.
“Buy Now. Pay Nothing Until…” next year, see
we’ll make you pay more, but we’ll call it free.
“Buy One”, why one, “Get Two Free”,
you hardly needed the first, now you’ve got three.
It’s the “Closing Down Sale”, “Everything Must Go”.
your conscience won’t forgive you if you don’t throw
your hard earned money to the “Economies of Scale”
and the outsourcing and the offshoring and the “Weekend Only” sale,
for once a weekend is gone, it’s gone … for the next five days.
We’re “raising the bar”, “pushing the envelope” just in case
your “Purchasing Power” decides for you, to buy.
Just remember “terms and conditions…”, still, “apply”.

(Anil Krishna, July 3rd, 2006)

Reference: the dictionary of (bull.shit): a shameless opinionated guide to all that is absurd, misleading and insincere. Nick Webb, SourceBooks, Inc.

Posted in Poetry | No Comments »

A glance away

June 17th, 2006 admin

With a trembling hand I dare to write
of the day we both shall reunite.
Your smile will be but a glance away
sunny and blue, while the sky may grey.
The days of phone calls draw to a close,
long weekend flights and luggage woes.
The end approaches for goodbyes that ache,
and for promised that are easy to make,
yet hard due to the distance keep,
and the constant hunt for tickets cheap.
The day is close, the end near.
Though a beginning it will be, I fear
it shall come and take a part of me,
and a part of you, leaving but a memory.
Sweet beginning, yet a sad day,
when your smile will be but a glance away.

(Anil Krishna, June 17th, 2006)

Posted in Poetry | No Comments »

Hardened

June 15th, 2006 admin

With hope alone, comes dejection
Only expectations come crashing down,
Sacrifice leads only to more,
Where there is care, strife abounds.

Giving up is near and it teases,
Not caring is not too hard,
Yet love flutters briefly, struggles,
The heart hurts, burned and scarred.

It reminds itself of times gone by,
Memory is an innocent cloud,
Thoughts of promises kept and made,
Return with glimpses of happiness vowed.

The heart enchanted, seeks a fall,
Into what makes it feel alive,
Into hopes, efforts and promises,
Faith, trust and dreams naive.

It breaks again. It mends again.
And breaks a few times still.
Blinding drops of tears well up,
The remains are shards, gone is the will.

The heart once soft, accepts its greying world,
And gives up trying.
A hardened heart lives alone,
But never ends up crying.

( Anil Krishna, June 15th, 2006)

Posted in Poetry | No Comments »

Poisoned Wine

June 4th, 2006 admin

You are the Monarch of an Island and are about to have a festival tomorrow. The festival is the most important one you have ever had. You’ve got 1000 bottles of wine you were planning to open for the fiesta, but you find out that one of them is poisoned by some evil scoundrel. The actual poison exhibits no symptoms until somewhere around the 23rd hour, then results in sudden death. You have thousands of prisoners at your disposal.

1. What is the smallest number of prisoners you must have to drink from the bottles to find the poisoned bottle?
2. What is the smallest number of prisoners that you must sacrifice?
3. For the strong minded, what is the smallest number of prisoners if more than one bottle (say 2) is poisoned? Read More (pdf file)

Posted in Tidbits | No Comments »