java中的蛮力多项式算法
我需要对蛮力多项式求值算法进行增强。我得到了x的最大幂(n的值),多项式(a,b,c,…)的所有元素的系数的值作为一个整数数组列表。但是我不能在java上应用这个算法:f(x)=ax^n+bx^(n-1)+cx^(n-3)+…+如何在java上应用这个多项式?它的算法是什么?有什么帮助吗java中的蛮力多项式算法,java,algorithm,brute-force,Java,Algorithm,Brute Force,我需要对蛮力多项式求值算法进行增强。我得到了x的最大幂(n的值),多项式(a,b,c,…)的所有元素的系数的值作为一个整数数组列表。但是我不能在java上应用这个算法:f(x)=ax^n+bx^(n-1)+cx^(n-3)+…+如何在java上应用这个多项式?它的算法是什么?有什么帮助吗 package brute.force; import java.util.*; import java.util.Scanner; public class BruteForce { publi
package brute.force;
import java.util.*;
import java.util.Scanner;
public class BruteForce {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
ArrayList<Integer> coefficients = new ArrayList<>();
int powerOfX, x;
System.out.print("Enter integers please ");
System.out.println("(EOF or non-integer to terminate): ");
while(scan.hasNextInt()){
coefficients.add(scan.nextInt());
}
Integer [] nums = coefficients.toArray(new Integer[0]);
for(int i = 0; i < nums.length; i++){
System.out.println(nums[i]);
}
}
}
package brute.force;
导入java.util.*;
导入java.util.Scanner;
公共类暴力{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
ArrayList系数=新的ArrayList();
int-powerOfX,x;
系统输出打印(“请输入整数”);
System.out.println(“(EOF或非整数终止):”;
while(scan.hasNextInt()){
add(scan.nextInt());
}
整数[]nums=系数.toArray(新整数[0]);
对于(int i=0;i
你是说这个
double result = 0;
for(int i = 0; i < nums.length; i++) {
result += nums[i] * Math.pow(x, i); // nums has coefficients in increasing order
}
double result=0;
对于(int i=0;i
你是说这个
double result = 0;
for(int i = 0; i < nums.length; i++) {
result += nums[i] * Math.pow(x, i); // nums has coefficients in increasing order
}
double result=0;
对于(int i=0;i
您需要通过以下迭代进行计算:
double result = 0;
Integer [] nums = coefficients.toArray(new Integer[0]);
for(int i = 0; i < nums.length; i++){
result = result *x + nums[i];
}
System.out.println(result);
double result=0;
整数[]nums=系数.toArray(新整数[0]);
对于(int i=0;i
它被称为霍纳法。
这种方法(例如四次多项式)的优点是:
f(x)=ax^3+bx^2+cx+z
转换为:
f(x)=((a)*x+b)*x+c)*x+z您需要通过以下迭代进行计算:
double result = 0;
Integer [] nums = coefficients.toArray(new Integer[0]);
for(int i = 0; i < nums.length; i++){
result = result *x + nums[i];
}
System.out.println(result);
double result=0;
整数[]nums=系数.toArray(新整数[0]);
对于(int i=0;i
它被称为霍纳法。
这种方法(例如四次多项式)的优点是:
f(x)=ax^3+bx^2+cx+z
转换为:
f(x)=((a)*x+b)*x+c)*x+z您可以使用它以计算效率高的形式计算多项式
user987339发布了一个Java实现。您可以使用它以计算效率高的形式计算多项式
user987339发布了一个Java实现。你是在问算法还是如何在Java中获取输入。你的确切问题是什么?我在问算法,我得到了上面所有的输入。你是在问算法还是如何在Java中获取输入。你的确切问题是什么?我在问算法,我得到了上面所有的信息。谢谢你给我留下作者的名字!谢谢你给我留下作者的名字!这真的很好,但你没有使用x值的幂。如何用x的幂来限制算法?实际上你不必使用x的幂,因为它一直根据系数运行,但我想用x的幂来检查。这很好,但你没有使用x的幂。如何用x的幂来限制算法?实际上,你们不必使用x的幂,因为它是根据系数来进行的,但我想用x的幂来检查。