Capt. Phạm Thành Tuyên
Xin tặng các bạn trong ngành tin một chương trình con khả chạy nằm trong phần mềm Loading Wizard 2011 từ phiên bản 4.0. Đó là một hàm nội suy đa thức kiểu Ayken, rất đơn giản.
double LookAyken(double ValueIn, double* columnIn, double* columnOut, int count)
{
double sum=0;
int i,j;
for(i=0; i<count; i++)
{
// x ≠ xi ∀ i in [0,n], else return yi
if(ValueIn==columnIn[i])
return columnOut[i];
double Wc= 1, Wi=1;
for(j=0; j<count; j++)
{
if(j!=i)
{
Wc*= (ValueIn-columnIn[j]);
Wi*=(columnIn[i]-columnIn[j]);
}
}
sum+= (columnOut[i]*Wc/Wi);
}
return sum;
}
Hàm lấy 4 tham số với ValueIn có vai trò của x, columnIn là con trỏ đến một mảng các giá trị xi, columnOut là con trỏ đến một mảng các giá trị yi, số cặp (xi,yi) là count. Hàm trả về giá trị cần tìm ứng với giá trị vào ValueIn. Thuật toán thật đơn giản, tôi đã tranh thủ viết đoạn mã này khi đang cùng với hoa tiêu nước ngoài điều động tàu vào cảng.
Pingback: Tấn công Ngày sinh (Birthday attack) | Chuyên toán Thái Phiên