Archive for the ‘Programming’ Category

The 12 Coins Puzzle

Wednesday, November 14th, 2012

I recently came across this puzzle:

There are 12 coins, all identical in appearance, and all identical in weight except for one, which is either heavier or lighter than the remaining 11 coins. Determine which is the counterfeit coin in only 3 weighings with a balance scale.

After struggling with this, both mentally and using pencil and paper, I decided to write a web page to simulate the problem; it can be found here. You may find it interesting to attempt this puzzle there before reading the discussion below. (more…)

My first Android app

Friday, July 15th, 2011

I have been dabbling with Android development on and off for a little while now.

Android apps are usually written in Java, and having never used Java before, I have had to teach myself the basics of Java.

I wanted to start with a very basic app so I decided to convert an existing app that I had written in C# to run on Android.

The app is SolveX and I have written it to help me when I get stuck with a crossword, which seems to happen all the time. It uses SQL to find matches for the words I am stuck on. Having a database of over 105,000 words it usually manages to find the right word. 

 I have used this app on a personal basis for some time now although I had not released it on my website.  I have taken this opportunity to tidy it up, seperating the presentation from the logic by dividing it into seperate classes, and it is available now at my website.

The conversion to Android went quite smoothly, after I had converted the database to use SQLite, as used by Android.  

The only issue that I had  was how to deploy the database, which was a file of over 3Mb.  I eventually decided to store the database on a web server and deploy the app without the database.  When the app is used for the first time it connects to the web server and copies the database to the user’s device.  This only needs to be done on the first occasion the app is used. 

The app is now available at the Android market with a download size of 34k.

Calculating Permutations

Sunday, August 22nd, 2010

I recently came across this problem:

Find the only 10 digit number which uses each of the digits 0 – 9 and has the following property: The number formed by the first n digits should be divisible by n. That is

  • The first digit should be divisible by 1
  • The number formed by the first 2 digits should be divisible by 2.
  • The number formed by the first 3 digits should be divisible by 3.
  • And so on until the number formed by the first 10 digits should be divisible by 10.

(more…)

Project Euler: Problem 11

Thursday, August 19th, 2010

This is problem 11 in Project Euler:

In the 20 x 20 grid below, four numbers along a diagonal line have been marked in red.

08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48

The product of these numbers is 26 × 63 × 78 × 14 = 1788696.

What is the greatest product of four adjacent numbers in any direction (up, down, left, right, or diagonally) in the 20 x 20 grid?

(more…)