zardosht
یک شنبه 25 اسفند 1392, 02:19 صبح
سلام من از این تابع می خواهم استفاده کنم برای بدست آوردن کمترین فاصله بین نقاط در دو آرایه ولی فقط فاصله مقدار خانه اول هر دو ارایه رو حساب میکنه و بر میگردونه میتوندکمک کنید که مشکل کجاست؟
public static double EuclideanDistance(double[] X, double[] Y)
{
int count = 0;
double distance = 0.0;
double sum = 0.0;
if (X.GetUpperBound(0) != Y.GetUpperBound(0))
{
throw new System.ArgumentException("the number of elements in X must match the number of elements in Y");
}
else
{
count = X.Length;
}
for (int i = 0; i < count; i++)
{
sum = sum + Math.Pow(Math.Abs(X[i] - Y[i]), 2);
}
distance = Math.Sqrt(sum);
return distance;
}
private void Form1_Load(object sender, EventArgs e)
{
double sum = 0.0;
double[] x = new double[3];
double[] y = new double[3];
x[0] = 1;
y[1] = 20;
x[2] = 100;
y[0] = 200;
x[1] = 10;
y[2] = 90;
int count = x.Length;
for (int i = 0; i < count; i++)
{
listBox1.Items.Add(EuclideanDistance(x, y));
}
public static double EuclideanDistance(double[] X, double[] Y)
{
int count = 0;
double distance = 0.0;
double sum = 0.0;
if (X.GetUpperBound(0) != Y.GetUpperBound(0))
{
throw new System.ArgumentException("the number of elements in X must match the number of elements in Y");
}
else
{
count = X.Length;
}
for (int i = 0; i < count; i++)
{
sum = sum + Math.Pow(Math.Abs(X[i] - Y[i]), 2);
}
distance = Math.Sqrt(sum);
return distance;
}
private void Form1_Load(object sender, EventArgs e)
{
double sum = 0.0;
double[] x = new double[3];
double[] y = new double[3];
x[0] = 1;
y[1] = 20;
x[2] = 100;
y[0] = 200;
x[1] = 10;
y[2] = 90;
int count = x.Length;
for (int i = 0; i < count; i++)
{
listBox1.Items.Add(EuclideanDistance(x, y));
}