gpt4 book ai didi

java - 如何将数学方程分解为系数和指数?

转载 作者:行者123 更新时间:2023-12-02 11:32:01 27 4
gpt4 key购买 nike

我正在用java计算一些方程。我想使用单链表。节点应该有两个整数数据:系数和指数。

这里是一个例子:方程 = 18x^75-4x^56+18x^37+18x^19-18x^9-12

链表= node1(18, 75)->node2(-4, 56)...应该是这样的。

我问的是 split 。

String equation = "18x^75-4x^56+18x^37+18x^19-18x^9-12";
String[] terms = equation.split("[0-9]+(?<=[-+*/()])|(?=[-+*/()])");
for (String term : terms) {
System.out.println(term);
}

最佳答案

  • 您可以首先使用 +- 分隔符拆分方程,以便获得每个单独项的数组。请注意,如果该项为负数,您将需要保留该符号。
  • 然后,您可以流式传输术语数组,并针对每个术语,使用分隔符“x^”将其进一步拆分。这样你将得到两个分割项 - x^ 左边的一项是你的系数,右边的是指数。
  • 将系数和指数存储在条目中。
  • 将该条目存储在链接列表中。

这是一个工作示例:

String equation = "18x^75-4x^56+18x^37+18x^19-18x^9-12";
String[] terms = equation.split("\\+|(?=\\-)");
Arrays.stream(terms).forEach(System.out::println);
List list = new LinkedList<Map.Entry<Integer, Integer>>();
Arrays.stream(terms).filter(t -> t.contains("x^")).forEach(
s -> list.add(new AbstractMap.SimpleEntry(Integer.parseInt(s.split("x\\^")[0]), Integer.parseInt(s.split("x\\^")[1]))));
//Finally, add the constant term.
list.add(new AbstractMap.SimpleEntry(Integer.parseInt(terms[terms.length - 1]), 0));

关于java - 如何将数学方程分解为系数和指数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49223965/

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