Я немного медленнее от марки, чем @josilber, (мой ответ - немного бит более общий)
d <- 3
n <- d*(d+1)/2
xx <- do.call(expand.grid,replicate(n,1:n,simplify=FALSE))
Построить симметричную матрицу:
mm <- matrix(nrow=d,ncol=d) ## define once, outside loop
m <- function(x) {
mm[lower.tri(mm,diag=TRUE)] <- unlist(x)
mm[upper.tri(mm)] <- t(mm)[upper.tri(mm)]
mm
}
Получить список матриц:
library(plyr)
mList <- alply(xx,1,m,.progress="text")
Получить детерминанты для каждой матрицы:
detvec <- laply(mList,det)
Найти максимум:
max(detvec) ## 325
mList[[which.max(detvec)]]
Просто для удовольствия:
plot(table(detvec))
Математическое предположения/гипотеза, является ли максимальной-ой матрица всегда матрица с 1 по диагонали и n
на Недиагональном, или это зависит от матрицы является нечетным против даже ... и как это доказать.
Этот вопрос не соответствует теме, потому что речь идет о математике. –
... в то время как вы могли бы сделать это с помощью R ** в принципе ** каким-то алгоритмом грубой силы, на практике, вероятно, гораздо лучше попытаться решить проблему, подумав об этом ... могли бы мы иметь немного больше контекста, пожалуйста? Вы можете начать с создания всех 6^6 комбинаций записей через 'xx <- do.call (expand.grid, replicate (6,1: 6, simplify = FALSE))', поместить их в симметричную матрицу и вычислить детерминант - это всего около 45000 записей, поэтому ** ** можно было бы сделать грубой силой. –