gpt4 book ai didi

scala - 在 Scala 中将矩阵 9x9 元素分组为 3 行 3 列

转载 作者:行者123 更新时间:2023-12-04 15:52:57 24 4
gpt4 key购买 nike

假设我有以下矩阵:


val grid = Array(
Array( 1, 2, 3, 4, 5, 6, 7, 8, 9),
Array(11,12,13, 14,15,16, 17,18,19),
Array(21,22,23, 24,25,26, 27,28,29),

Array(31,32,33, 34,35,36, 37,38,39),
Array(41,42,43, 44,45,46, 47,48,49),
Array(51,52,53, 54,55,56, 57,58,59),

Array(61,62,63, 64,65,66, 67,68,69),
Array(71,72,73, 74,75,76, 77,78,79),
Array(81,82,83, 84,85,86, 87,88,89)
)

我如何,最好以函数式的方式,将它们转换成这个矩阵:


val gridWithFields = Array(
Array(1,2,3, 11,12,13, 21,22,23),
Array(4,5,6, 14,15,16, 21,22,23),
Array(7,8,9, 17,18,19, 27,28,29),
...
)

*已更新*
我做了一些基准测试,但不确定内存结果是否正确。他们在这里的任何方式:

@maxmc for 的解决方案

alg1 in Cycles: 10    Time: 2712683ns Memory: 459572alg1 in Cycles: 100   Time: 914297ns  Memory: 458191alg1 in Cycles: 1000  Time: 85102ns   Memory: 457944alg1 in Cycles: 10000 Time: 68742ns   Memory: 457943

@Daniel C. Sobral 溶液

alg2 in Cycles: 10    Time: 3747031ns Memory: 458889alg2 in Cycles: 100   Time: 1796564ns Memory: 457951alg2 in Cycles: 1000  Time: 186215ns  Memory: 457220alg2 in Cycles: 10000 Time: 122642ns  Memory: 456708

@Or Peles 解决方案

alg3 in Cycles: 10    Time: 741475ns Memory: 457472alg3 in Cycles: 100   Time: 542181ns Memory: 457914alg3 in Cycles: 1000  Time: 248020ns Memory: 457911alg3 in Cycles: 10000 Time: 119105ns Memory: 457919

@Hbf 解决方案

alg4 in Cycles: 10    Time: 179093ns Memory: 457472alg4 in Cycles: 100   Time: 121072ns Memory: 457069alg4 in Cycles: 1000  Time: 78123ns  Memory: 456719alg4 in Cycles: 10000 Time: 75948ns  Memory: 455913

@Eastsun解决方案

alg5 in Cycles: 10    Time: 144037ns Memory: 457512alg5 in Cycles: 100   Time: 40672ns  Memory: 457059alg5 in Cycles: 1000  Time: 42236ns  Memory: 456119alg5 in Cycles: 10000 Time: 46480ns  Memory: 455952

我已经在 MacMini(2012) 上测试过了。内存结果真的很奇怪,所以资源在这里,如果有一些严重的错误和反模式请告诉我 =) https://github.com/Stimphonier/MatrixBench

最佳答案

“for”方法:

for(x <- 0 until 9 by 3) yield
(for {
row <- 0 until 9;
col <- x until x + 3 by 3;
i <- col until col + 3
} yield grid(row)(i)).toArray

关于scala - 在 Scala 中将矩阵 9x9 元素分组为 3 行 3 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15090721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com