jump to navigation

Singapore Maths Question Solution and Very Interesting Observation (The Trickster) April 23, 2015

Posted by Richard Foote in Oracle Indexes.

OK, time to reveal the solution to the somewhat tricky Singapore maths exam question I blogged previously.

Remember, there were 10 dates:

May 13   May 15   May 19

June 13   June 14

July 16   July 18

August 14   August 15   August 16

Bowie only knew the month of my birthday, Ziggy only knew the day.

Bowie begins by saying “I don’t know when your birthday is, but I know Ziggy does not know too.”

Now the first part is obvious, Bowie only knows the month and there are at least 2 possible dates for every month, so there is no way of Bowie knowing my birthday based on just the month. However, the second part is new information, Bowie knows that Ziggy doesn’t know either. How can he claim this ?

Well, there are 2 special dates on the list, May 19 and July 18 as these are the only dates that have a unique day. If Ziggy was given one of these days (18 or 19), he would instantly know my birthday. However, Bowie who only knows the month knows that Ziggy doesn’t know my birthday. He can only claim this if the month is not May and not July because if the month he was given was one of these months, Ziggy might then know my birthday.

So my birthday must be in either June or August and we can eliminate both May and July from further consideration.

Now Ziggy can likewise perform this logic and he now knows the month of my birthday must be either June or August. He now says “At first I don’t know when your birthday is, but now I know”.

The first part is again obvious as Bowie has already stated that Ziggy doesn’t at first know my birthday. But the second part is new information, he now knows. The only way he can now know is if my birthday is one of June 13, August 15 or August 16 as these are the only dates in June and August that have a unique day. If my birthday was on either June 14 or August 14, there is no way Ziggy could now know my birthday as they both have the same day.

So we’re now down to just these 3 possible dates.

Now Bowie can also likewise perform this logic and that my birthday must be one of June 13, August 15 or August 16. The final piece of information is Bowie saying “Then I also know when your birthday is.”. The only way he can say this is if my birthday is on June 13 as this is the only remaining date with a unique month. If my birthday had been either August 15 or August 16 then there is no way for Bowie is now know.

Therefore my birthday must indeed be June 13.

So congratulations to all of you who managed to get the correct answer 🙂

An Interesting Observation

Now here’s an interesting thing. 8 people got the correct answer. But equal on top of popular answers with 8 responses also was July 16. Why was July 16 such a popular answer, when the month of July was actually one of the earliest set of dates we could eliminate from consideration. It also wasn’t one of the unique day dates which is also a common answer ? What’s so special about July 16 that so many people picked this answer ?

Well, the original Singapore question I referenced in my original blog piece in which the students had to work out Cheryl’s birthday had a correct answer of, you guessed it, July 16. You see, not only did I change the names from the original question, but I also changed the dates as well.  However, I made sure that July 16 was one of the possible 10 dates 🙂

Now I don’t know how everyone got to their answer but it strikes me as an interesting coincidence that so many people got the same answer as to the original Singapore exam question. I wonder how many people looked up the answer from the Singapore question and just assumed the same answer fit here as well ? How many people saw enough information in the question for them to assume an answer, without being careful enough regarding the actual information laid out before them ? These are two similar but yet different questions which have two different answers.

And isn’t this such a common trait, especially in the IT world when trying to diagnose a performance issue. You see a problem in which you’ve seen a similar symptom before and assume that the root cause was the same as it might have been previously, even though the information at hand (if only you looked carefully enough) is entirely different and doesn’t actually lend itself to the same root cause.

Just because the reason for lots of log file sync waits before was slow write performance to the redo log files doesn’t necessarily mean it’s the same reason today. Just because you have slow RAC cluster waits previously due to interconnect issues doesn’t necessarily mean it’s now the root cause. Quickly jumping to the wrong conclusion is such an easy mistake to make when trying to diagnose a performance problem. One needs to look carefully at all the facts on hand and with an Oracle database, there is no excuse to not look at all the relevant, appropriate facts when diagnosing a performance problem.

No, just because someone previously had a brain tumour when they had a headache doesn’t necessarily mean your headache is the result of a brain tumour 🙂

Hope you had some fun, I certainly did !! 🙂

Good Singapore Maths Students Would Likely Make Good Oracle DBAs (Problems) April 15, 2015

Posted by Richard Foote in Oracle Indexes.

An interesting mathematics based question from a Singapore high school exam has been doing the internet rounds in the past few days. Considering it’s aimed at high school students, it’s a tricky one and obviously designed to filter out the better students, in a country with a very good reputation for churning out mathematically gifted students.

I enjoy solving problems and this one took me a few minutes to work it out. However, at the end of the process, it occurred to me that I used a similar process to how I’ve often solved performance issues with Oracle databases. In fact, this question kinda reminded me of a performance issue that I had only just recently been asked by a customer to help resolve.

One needs to clearly understand the question being asked. One also needs to focus and understand the data at hand. Then use a process of elimination to both rule out and just as importantly rule in possible answers (or root causes to performance issues). Eventually, one can then narrow down and pinpoint things down to a specific solution (or set of answers).

So for example, the database is running exceptionally slow globally at certain times, why ?  So it looks like it’s because there are lots of cluster related waits at these times, why ? So it looks like it’s because writing to the redo logs is really slow at these times, why ? And so on and so on.

If you can work out the solution to this problem in a reasonably timely manner, then in all likelihood you have good problem solving skills and the makings of a good Oracle DBA. You just need to also like donuts and good whiskies 🙂

I’ve reproduced the question here, changing the names to protect the innocent.

“Bowie and Ziggy just become friends with me, and they want to know when my birthday is. I give them 10 possible dates:

May 13   May 15   May 19

June 13   June 14

July 16   July 18

August 14   August 15   August 16

I then tell Bowie and Ziggy separately the month and the day of my birthday respectively.

Bowie: I don’t know when your birthday is, but I know Ziggy does not know too.

Ziggy: At first I don’t know when your birthday is, but now I know.

Bowie: Then I also know when your birthday is.

So when is my birthday ?”

Feel free to comment on what you think the answer is but please don’t give away how you might have worked it out. For those interested (or for those that don’t check out the solution on the web first 🙂 ), I’ll explain how to get to the answer in a few days time.

Like I said, if you get it right, you should consider a career as an Oracle DBA !! And here’s a link to an excellent whisky: Sullivans Cove Whisky 🙂