more games of life

Another puzzle in memoriam of John Conway in The Guardian:

Find the ten digit number, abcdefghij. Each of the digits is different, and

  • a is divisible by 1
  • ab is divisible by 2
  • abc is divisible by 3
  • abcd is divisible by 4
  • abcde is divisible by 5
  • abcdef is divisible by 6
  • abcdefg is divisible by 7
  • abcdefgh is divisible by 8
  • abcdefghi is divisible by 9
  • abcdefghij is divisible by 10

Which brute force R coding by checking over random permutations of (1,2,…,9) [since j=0] solves within seconds:

while(0<1)
  if (prod(!(x<-sum(10^{0:8}*sample(1:9)))%/%10^{7:0}%%2:9))break()

into x=3816547290. And slightly less brute force R coding even faster:

while(0<1){
e=sample(c(2,6,8))#even
o=sample(c(1,3,7,9))#odd
if((!(o[1]+e[1]+o[2])%%3)&
(!(10*o[2]+e[2])%%4)&
(!(o[1]+e[1]+o[2]+e[2]+5+4)%%3)&
(!sum(10^{6:0}*c(o[1],e[1],o[2],e[2],5,4,o[3]))%%7)&
(!(10*o[3]+e[3])%%8)&
(!(sum(o)+sum(e))%%9)){
print(sum(10^{9:0}*c(o[1],e[1],o[2],e[2],4,5,o[3],e[3],o[4],0)));break()}}

6 Responses to “more games of life”

  1. Another approach without random sampling

    library(tidyverse)
    library(gtools)
    df <- permutations(9, 9, v = 1:9)
    df <- as.data.frame(df)
    names(df) %
    mutate(j = 0) %>%
    filter(e == 5) %>%
    filter_at(vars(b, d, f, h), ~ . %% 2 == 0) %>%
    mutate(
    cd = paste0(c, d) %>% as.numeric(),
    fgh = paste0(f, g, h) %>% as.numeric(),
    abcdefg = paste0(a, b, c, d, e, f, g) %>% as.numeric()
    ) %>%
    filter((a + b + c) %% 3 == 0) %>%
    filter((d + e + f) %% 3 == 0) %>%
    filter(fgh %% 8 == 0) %>%
    filter(abcdefg %% 7 == 0) %>%
    filter(cd %% 4 == 0) %>%
    select(-c(cd, fgh, abcdefg))

  2. […] article was first published on R – Xi'an's Og, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here) […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.