Archive for factors()

Le Monde puzzle [#825]

Posted in Books, Kids, R with tags , , , , , on July 21, 2013 by xi'an

The current puzzle is the last one before the summer break and not exciting enough to take along:

Take the first ten digits, create five pairs out of those, and for each pair (x,y) derive the quantity (min(x,y)+1.5max(x,y)). What is the collection of pairs that maximises the product of those quantities?

I wrote the following R code in the train back from Annecy:

res=0
bonus=1.5
for (t in 1:1000){
x=matrix(sample(1:10),ncol=2)
mix=apply(x,1,min);mox=apply(x,1,max)
rex=prod(mix+bonus*mox)
if (rex>res){
  print(x)
  res=rex}
}

and got:

     [,1] [,2]
[1,]    4    7
[2,]    5    6
[3,]    8    3
[4,]    2    9
[5,]    1   10

Thus the sum of the pairs is always equal to 11. And by changing bonus you can check this is true for all values of the coefficient that are larger than one (one included).

Le Monde puzzle [#820]

Posted in Books, Kids, R with tags , , , , , on May 15, 2013 by xi'an

The current puzzle is… puzzling:

Given the set {1,…,N} with N<61, one iterates the following procedure: take (x,y) within the set and replace the pair with the smallest divider of x+y (bar 1). What are the values of N such that the final value in the set is 61?

I find it puzzling because the way the pairs are selected impacts the final value. Or not, depending upon N. Using the following code (with factors() from the pracma package):

library(pracma)
endof=function(N){
  coll=1:N
  for (t in 1:(N-1)){

    pair=sample(1:length(coll),2)
    dive=min(factors(sum(coll[pair])))
    coll=coll[-pair]
    coll=c(coll,dive)
    }
  print(dive)
  }

I got:

> for (t in 1:10) endof(10)
[1] 5
[1] 3
[1] 3
[1] 5
[1] 7
[1] 5
[1] 5
[1] 7
[1] 3
[1] 3> for (t in 1:10) endof(16)
[1] 2
[1] 2
[1] 2
[1] 2
[1] 2
[1] 2
[1] 2
[1] 2
[1] 2
[1] 2

For N of the form 4k or 4k-1, the final number is always 2 while for N‘s of the form 4k-2 and 4k-3, the final number varies, sometimes producing 61′s. Although I could not find solutions for N less than 17…  Looking more closely into the sequence leading to 61, I could not see a pattern, apart from producing prime numbers as, in, e.g.

61 = 2 + [12 +  (4 + {14 + [13 + 16]})]

for N=17.  (Another puzzle is that 61 plays no particular role: a long run of random calls to endof() return all prime numbers up to 79…)

Udate: Looking at the solution in today’s edition, there exist a solution for N=13 and a solution for N=14. Even though my R code fails to spot it. Of course, an exhaustive search would be feasible in these two cases.  (I had also eliminated values below as not summing up to 61.) The argument for eliminating 4k and 4k-1 is that there must be an odd number of odd numbers in the collection, otherwise, the final number is always 2.

Follow

Get every new post delivered to your Inbox.

Join 551 other followers