# Combinacio d1-d2 8-connex. Exercici 9 # variables # m : matriu donada # d1 : primer digit de la seqüència # d2 : segon digit de la seqüència # n : nombre de sequencies d1-d2 # i : index per a recorrer files # j : index per a recorrer columnes escriuMatriu <- function(m){ cat("\n") for(i in 1 : nrow(m)){ cat(m[i, ]) cat("\n") } cat("\n") } orlaMatriu <- function(m){ mAux <- matrix(0, ncol = ncol(m)+2, nrow = nrow(m)+2) # mAux <- matrix(ncol = ncol(m)+2, nrow = nrow(m)+2) # for (i in 1:nrow(mAux)){ # for (j in 1:ncol(mAux)){ # mAux[i, j] <- 0 # } # } for (i in 1:nrow(m)){ for (j in 1:ncol(m)){ mAux[i+1, j+1] <- m[i, j] } } return (mAux) } comptaEnVeinat <-function(m, i, j, d2){ n <- 0 for (ii in (i-1):(i+1)){ for (jj in (j-1):(j+1)){ if ( ! (ii == i && jj == j) && m[ii, jj] == d2){ n <- n + 1 } } } return (n) } combinacio8Connexa <- function(m, d1, d2){ # m es la matriu orlada amb zeros n <- 0 nf <- nrow(m) nc <- ncol(m) for (i in 2 : (nf - 1)){ for (j in 2 : (nc - 1)){ if (m[i, j] == d1){ n <- n + comptaEnVeinat(m, i, j, d2) } } } return (n) } d1 <- 3 d2 <- 1 m <- matrix(c(1,3,4,3,1,3,1,1,3,4,3,1), nrow=3, ncol=4) cat("\n Matriu donada \n") escriuMatriu(m) m <- orlaMatriu(m) cat("\n Matriu orlada \n") escriuMatriu(m) cat("combinació ", d1, d2, "n: ", combinacio8Connexa(m, d1, d2), "\n") cat("combinació ", d2, d1, "n: ", combinacio8Connexa(m, d2, d1), "\n") d1 <- 1 d2 <- 1 cat("combinació ", d2, d1, "n: ", combinacio8Connexa(m, d2, d1), "\n")