MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Programming Probability of puzzle in Mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg44911] Re: Programming Probability of puzzle in Mathematica
  • From: Bill Rowe <readnewscix at mail.earthlink.net>
  • Date: Mon, 8 Dec 2003 02:29:19 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

On 12/7/03 at 6:03 AM, mathtutoring at comcast.net (art burke) wrote:

> I'd like to come up with several small programs that compute the
> probability of random numbers being inserted into let's say, a magic
> cube, triangle, or such that all rows, columns, and diagonals add up
> to a certain number.
 
> Let's say a 3x3 magic square, using the numbers 1,2,3,4,5,6,7,8 and 9.
> Of course, if you know how to put them into the magic square, all
> rows, diagonals, and columns add up to 15.

> Having Mathematica insert random numbers in cells, compute all sums
> and see if it has it correct, and keep up the repetions until it comes
> up with an average probability, let's say after 1000 tries....What
> would be the probability?

Essentially, 0

Taking your example of a 3 x 3 square and the numbers 1 though 9, there are 9! = 362880 different ways to arrange these numbers in a 3 x 3 array.

<<DiscreteMath`
Length@Select[KSubsets[Range@9,3],Tr@#==15&]

Shows there are only 8 subsets of the 9 digits that add to 15. Further,

Count[Flatten@KSubsets[Range@9,3],#]&/@Range@9 results in

{2, 3, 2, 3, 4, 3, 2, 3, 2}

showing the only possible arangements that meet the magic square requirement are rotations and reflections of

8 3 4
1 5 9
6 7 2

If  I've counted correctly, this means 8 possible magic squares.

So the probability of a randomly chosen arrangement being a magic square is

8/9! = 1/45360, or in other words you will need on average to try 45360 random arrangements to get one magic square.

> I've been quit interested in this for a while, but am wondering how it
> would be done??

<<DiscreteMath`
a = Partition[RandomPermutation@9,3]

will generate a random 3 x 3 array of the 9 digits and assign it to a. Then

Flatten@{Tr/@a, Tr@a, Tr/@Transpose@a, Tr@Reverse@a}

will give you the sums

--
To reply via email subtract one hundred and nine


  • Prev by Date: Re: Programming Probability of puzzle in Mathematica
  • Next by Date: Re: Re: How to stop a kerne calculationl without stopping the frontend
  • Previous by thread: Re: Programming Probability of puzzle in Mathematica
  • Next by thread: Re: Programming Probability of puzzle in Mathematica