如何为 lambda 或 java8 制作流程图?
how to make flowchart for lambda or 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);
流程图可用于绘制 procedural/imperative 范例。 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
现在将其转换为流程图应该更容易了。自己试试吧!
你能帮我教我如何用这段代码制作流程图吗? 谢谢
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);
流程图可用于绘制 procedural/imperative 范例。 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
现在将其转换为流程图应该更容易了。自己试试吧!