更新时间2018-03-06 19:55:30
//获取数组(x1,y1)中到原点距离小于(Xj,Yj)到原点的距离的元素,存入新矩阵(x,y),并将Xj,Yj放入对应的(x,y)
public static void GetDisLessFirst(double[] x1, double[] y1, double Xj,double Yj, out double[] x, out double[] y)
{
//用out方法要 对x y赋初值,但是个数不确定,怎么解决?
int n = 0;
double d = (Math.Pow(Xj, 2) + Math.Pow(Yj, 2));
for (int i = 0; i < x1.Length; i++)
{
if ((Math.Pow(x1[i], 2) + Math.Pow(y1[i], 2)) < d )
{
n = n + 1;
}
}
int j = 1;
n = n + 1;
double[] x = new double[n];double []y=new double [n];
x[0] = Xj; y[0] = Yj;
double dd=0;
for (int i = 0; i < x1.Length; i++)
{
dd = (Math.Pow(x1[i], 2) + Math.Pow(y1[i], 2));
if (dd <d)
{
x[j]=x[i];y[j]=y[i];
j=j+1;
}
}
如果采用C#4.0来实现,以上5点都比较简单。1. 整型数组 int[] xx=new int[]();2. foreach这个数组,然后 x%2=0的就是偶数3. 采用linq实现,假定这个整数为y,则代码为 int m=xx.count(p=>p==y);if (m>0) 存在4. 这个会用到随机数,随机两个整数,范围在1到n-1之间即可,然后使用下标的方式来获取数组中的两个数,做除法。关键点在rand这个随机函数,以及数组的下表xx[9]5. 这个最简单,用linq来实现,只需要一句话 xx.orderby(p=>p)即可。