除非您的数据已经是二进制格式,否则我不会使用
DataInputStream。以下示例
BufferedReader用于撰写
org.jscience.mathematics.function.Polynomial。
请注意,为方便应用 Horner方案
,最高阶系数是第一个,如本示例所示。
1 2 3 44 3 2 1系数:1 2 3 4多项式:[1]x³+ [2]x²+ [3] x + [4]系数:4 3 2 1多项式:[4]x³+ [3]x²+ [2] x + [1]
码:
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import org.jscience.mathematics.function.Polynomial;import org.jscience.mathematics.function.Term;import org.jscience.mathematics.function.Variable;import org.jscience.mathematics.number.Integer64;public class ReadPoly { public static void main(String[] args) throws IOException { BufferedReader r = new BufferedReader(new FileReader("test.txt")); String s; while ((s = r.readLine()) != null) { System.out.println("Coefficient: " + s); Polynomial<Integer64> p = create(s.split(" ")); System.out.println("Polynomial: " + p); } } public static Polynomial<Integer64> create(String... a) { Variable<Integer64> x = new Variable.Local<Integer64>("x"); Polynomial<Integer64> px = Polynomial.valueOf(Integer64.ZERO, x); for (int i = 0, e = a.length - 1; i < a.length; i++, e--) { px = px.plus(Polynomial.valueOf( Integer64.valueOf(a[i]), Term.valueOf(x, e))); } return px; }}


