lambda - 如何为 lambda 或 java8 制作流程图?
问题描述
你能帮我教我如何用这段代码制作流程图吗?谢谢你
public BigDecimal[][] calcMatrixHessian(BigDecimal[][] polynomialMatrix, int[] classification, double λ) {
return IntStream.range(0, polynomialMatrix.length)
.mapToObj(i -> IntStream.range(0, polynomialMatrix[i].length)
.mapToObj(j -> polynomialMatrix[i][j]
.multiply(BigDecimal.valueOf(classification[i]*classification[j]))
.add(BigDecimal.valueOf(Math.pow(λ,2))))
.toArray(BigDecimal[]::new))
.toArray(BigDecimal[][]::new);
解决方案
流程图对于绘制程序/命令式范例很有用。Java Streams 非常实用,因此绘制它的流程图没有用,因为您将得到:
start -> return IntStream.range(0, polynomialMatrix.length)
.mapToObj(i -> IntStream.range(0, polynomialMatrix[i].length)
.mapToObj(j -> polynomialMatrix[i][j]
.multiply(BigDecimal.valueOf(classification[i]*classification[j]))
.add(BigDecimal.valueOf(Math.pow(λ,2))))
.toArray(BigDecimal[]::new))
.toArray(BigDecimal[][]::new); -> end
所以我们必须将其转换为更程序化的算法。这是一些伪代码:
retVal = new BigDecimal[polynomialMatrix[0].length][polynomialMatrix.length]
for i = 0 to polynomialMatrix.length
for j = 0 to polynomialMatrix[i].length
retVal[i][j] = polynomialMatrix[i][j] * classification[i]*classification[j]
retVal[i][j] += Math.pow(λ,2)
return retVal
现在应该更容易将其转换为流程图。自己试试吧!
推荐阅读
- typescript - 如何在 NestJs 框架中使用 postgres 和 sequelize 正确定义 DTO 对象
- mysql - 使用 ansible playbook 在 mysqlsh 中执行命令
- python - 张量流函数内的随机整数
- python - 将 3d 点及其颜色映射到不带循环的 2D 图像
- sql - 为什么“wc_get_product_id_by_sku()”函数在循环中返回相同的id?
- mongodb - NestJS - 如何自我引用 mongoDB 架构 @nestjs/mongoose?
- javascript - 如何使用 Konva.Image 模拟背景位置行为?
- sql - SQL查询以选择与其他列中的某些不同元素相关的列中的元素?
- json - 如何通过键索引存储在 S3 中的 JSON 文件?
- arrays - 将列类型更改为数组 Postgresql