Saya tahu saya bisa menggunakan expand.grid untuk ini, tetapi saya mencoba mempelajari pemrograman yang sebenarnya. Tujuan saya adalah mengambil apa yang saya miliki di bawah ini dan menggunakan rekursi untuk mendapatkan semua urutan biner 2^n dengan panjang n.
Saya dapat melakukan ini untuk n = 1, tetapi saya tidak mengerti bagaimana saya akan menggunakan fungsi yang sama secara rekursif untuk mendapatkan jawaban untuk dimensi yang lebih tinggi.
Ini untuk n = 1:
binseq <- function(n){
binmat <- matrix(nrow = 2^n, ncol = n)
r <- 0 #row counter
for (i in 0:1) {
r <- r + 1
binmat[r,] <- i
}
return(binmat)
}
Saya tahu saya mungkin harus menggunakan cbind dalam pernyataan return. Intuisi saya mengatakan pernyataan return harus seperti cbind(binseq(n-1), binseq(n)). Tapi sejujurnya, aku benar-benar tersesat saat ini.
Output yang diinginkan pada dasarnya harus menghasilkan ini secara rekursif untuk n = 3:
binmat <- matrix(nrow = 8, ncol = 3)
r <- 0 # current row of binmat
for (i in 0:1) {
for (j in 0:1) {
for (k in 0:1) {
r <- r + 1
binmat[r,] <- c(i, j, k)}
}
}
binmat
Seharusnya hanya berupa matriks karena binmat diisi secara rekursif.