This commit is contained in:
unlockable
2023-12-26 00:21:42 +08:00
parent f7f4086c4c
commit f24638bb8c

View File

@@ -35,7 +35,7 @@ double evaluate(double x, int highest) {
int main() {
int n = 0, m = 0;
int valid_point_num = 0;
freopen("lambdaeight19.in", "r", stdin);
// freopen("lambdaeight9.in", "r", stdin);
scanf("%d", &n);
scanf("%d", &m);
double read_x, read_y;
@@ -60,27 +60,31 @@ int main() {
for (int row = 0; row < valid_point_num; row++) {
set_num(row, 0, 1);
for (int col = 1; col <= row; col++) {
set_num(row, col, get_num(row, col - 1) * (point_xs[row] - point_xs[col - 1]));
set_num(row, col, point_xs[row] - point_xs[col - 1]);
}
}
// Solve for t
int continued_zero_count = 0;
for (int row = 0; row < valid_point_num; row++) {
for (int i = 0; i < row; i++) {
t[row] -= t[i] * get_num(row, i);
t[row] /= get_num(row, i);
t[row] -= t[i];
}
if (!compare_double(t[row], 0)) {
t[row] /= get_num(row, row);
}
else {
if (compare_double(t[row], 0)) {
t[row] = 0;
continued_zero_count++;
}
else {
t[row] /= get_num(row, row);
continued_zero_count = 0;
}
}
// Find for highest exponent
int highest = valid_point_num - 1;
for (; highest >= 0; highest--) {
if (!compare_double(t[highest], 0)) {
if (!compare_double(t[highest] / 10, 0)) {
break;
}
}